0
我有一个将对象返回给客户端的RMI方法。当方法完成时,另一个垃圾收集器的RMI调用是隐含的。如果我返回空对象,GC是否仍会被调用?我无法在任何地方找到任何确认此文字的文字。
相关:Does variable = null set it for garbage collection从RMI方法返回的空对象的垃圾回收
我有一个将对象返回给客户端的RMI方法。当方法完成时,另一个垃圾收集器的RMI调用是隐含的。如果我返回空对象,GC是否仍会被调用?我无法在任何地方找到任何确认此文字的文字。
相关:Does variable = null set it for garbage collection从RMI方法返回的空对象的垃圾回收
没有这样的东西作为空对象。有一个空的参考。在你提到的情况下,没有什么垃圾收集。
当该方法完成时,隐式创建另一个垃圾收集器的RMI调用。
我不知道你是什么意思。如果您指的是DGC,它不会像那样工作。如果没有,你错了。
我拦截RMI调用,我得到这些调用:'sun.rmi.transport.DGCImpl_Stub [0:0:0,2]:java.rmi.dgc.Lease dirty(java.rmi.server.ObjID [ ],long,java.rmi.dgc.Lease)' 正如你所提到的那样,我认为它是DGC。这究竟是什么?请帮助我理解。非常感谢。 – Neo
另外,是否有可能避免此调用?目前从我的RMI方法中,我返回:'return(new reponse_obj(1,true,null)'。是否创建一个本地对象并返回它解决这个问题? – Neo
DGC是* distributed * garbage-collection,定义在[RMI Specification ](https://docs.oracle.com/javase/8/docs/platform/rmi/spec/rmi-arch4.html)。我不明白你最后的问题,你必须发布一些代码。你的问题。 – EJP