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