我正在阅读有关分代垃圾收集here的信息。我的理解是,当GC运行时,对象可能会在内存中从一个位置移动到另一个位置。如果正在移动对象,那么如何存储对象的引用以使它们不会失效?
Object ref = new Object();
ref
中保存了什么?
答案 0 :(得分:2)
请记住:Java代码在虚拟机中执行。
从这个意义上说,它是一个纯粹的实现细节,JVM内部如何处理那些"事情"被程序员视为对象。
换句话说:JVM(可能)"简单地"使用映射函数将引用转换为实际指针。
然后:您必须了解java引用只是一种抽象。它们是不指向某些内存的指针!