这种情况比较复杂。我有一个Web容器,可以通过RMI控制另一台机器上的应用程序。RMI服务器端有一个HashMap,其中包含Web应用程序端需要控制的用户信息。
当用户从Web应用程序端注销登录时,会向RMI服务器发出调用,告诉服务器注销该用户。然后我只需从HashMap中删除该项即可。
现在我意识到GC不会收集我在HashMap中删除的对象,因为可能有其他线程仍在使用它,而且该对象还包含一些子对象,例如用户联系人。
我真的不知道如何销毁整个对象,包括其属性和属性的属性。
当用户从Web应用程序端注销登录时,会向RMI服务器发出调用,告诉服务器注销该用户。然后我只需从HashMap中删除该项即可。
现在我意识到GC不会收集我在HashMap中删除的对象,因为可能有其他线程仍在使用它,而且该对象还包含一些子对象,例如用户联系人。
我真的不知道如何销毁整个对象,包括其属性和属性的属性。