老师, gc 使用复制以及标记-整理算法导致对象在heap中动来动去, gc前和gc后, 是如何通过同一个引用访问同一个对象的
来源:8-6 String Constant Variable

慕哥8298992
2019-01-02
User u = new User(); // 此时 u 在 eden
… 发生了gc, user 从eden 到了 s0, 内存地址改变了
String name = u.getName() // 此时从 s0 获取到 User 对象, 程序肯定不出错, 如何做到的???
写回答
1回答
-
对象复制完成后,jvm会建立一张表,表中建立旧地址到新地址的索引。随后遍历一遍heap对象,修改他们发出引用的地址。
012019-01-03
相似问题