这实际上是《Java Performance》一书的一个问题,作者在其中提到:
在旧代空间垃圾收集之前对年轻代空间进行垃圾收集通常会导致垃圾收集器的工作更少,并且更多的对象被垃圾收集,因为旧代空间中的对象可能持有对年轻代空间中对象的对象引用。如果年轻代空间没有被垃圾回收,那么老年代空间中任何持有对年轻代空间对象的引用的对象都不能被垃圾回收。
我觉得粗体字是不正确的。我认为他实际上的意思是,如果年轻代空间没有被垃圾收集,那么老年代空间中被年轻代空间中的对象引用(而不是持有对)的任何对象都不能被垃圾收集。
你怎么看?