Java 对象是在 Heap 中创建的,为了在 Java 中进行垃圾回收,Heap 分为三部分或代,这些部分称为年轻代、Tenured 或 Old Generation 和堆的 Perm 区域。新一代进一步分为伊甸园空间、幸存者 1 和幸存者 2 空间三个部分。当一个对象首次在堆中创建时,它会在 Eden 空间内的新一代中创建,如果对象幸存,则在随后的 Minor Garbage 收集之后将其移动到幸存者 1,然后在主要垃圾收集将该对象移动到旧代或终身代之前的幸存者 2。
阅读更多:http: //javarevisited.blogspot.com/2011/04/garbage-collection-in-java.html#ixzz2MeKK2gBA
所以我的问题是,在这些移动动作之后,内存中的地址应该改变,为什么对象引用仍然有效?