Java RMI 远程对象可以在次要收集中进行垃圾收集吗?

Can Java RMI remote objects be garbage-collected in a minor collection?

众所周知,RMI 会定期调用 System.gc() 以引发完整的 gc,这将确保收集任何未引用的远程对象。但是,我无法确定远程对象有时是否会在次要收集中被垃圾收集。例如,如果 RMI 通信的延迟极低并且客户端租用期相应地极短。还是总是需要完整的 gc?如果是这样,为什么?难道远程对象可能连伊甸园都没有创建space,而是马上就进入了tenured generation?

是的。出于垃圾回收的目的,远程对象与任何其他对象没有区别。

DGC 协议只是强加于 GC 之上,通过持有引用直到 DGC 租约到期。