我对java中的内存管理感到困惑。到处都写着局部变量在堆栈中被赋予内存。如果该局部变量是对象类型,那么它会在堆中获得内存。我想知道JVM在哪里为值为null的本地对象引用变量分配内存。
public void show(){
Animal animal = null;
}
JVM 在哪里为动物对象分配内存。它在堆栈中吗?或者它不提供任何内存,因为它被标记为空。我确信它没有在堆中分配内存。
谁能解答我的疑惑。
最佳答案
我认为引用动物将存储在堆栈本身中,直到方法完成执行,但对象的状态将存储在堆中。
因此,在上面的情况下,指向 null 的对象将在堆栈本身中分配 null,否则,如果您初始化该对象,则它将在堆中拥有该对象的地址。
关于java - JVM 是否将内存分配给值为 null 的本地引用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47786611/