一个对象可以包含对其他对象的引用。如果将这些引用声明为类/字段变量,那么当对象本身在堆上创建时,字段引用表示的值将存储在堆上。
所以,如果我有
public class A {
int size;
}
- 我知道如果 size 得到一个 int 值,
2
那么它作为对象的一部分存储在堆上,但是引用(即存储的名称大小)在哪里? - 是名称“大小”也存储在堆上的对象内部。
size == 2
JVM如何在堆上交叉引用?- 当你加载它在主线程中运行的类时,每个线程都有自己的堆栈。所以这些字段引用不是在主堆栈上创建的吗?