JPG*_*JPG 0 java memory-management
我对Java中的内存管理感到困惑。到处都写有局部变量被赋予堆栈的内存。而且,如果该局部变量是对象类型,那么将在堆中为其分配内存。我想知道JVM在哪里为值为null的本地对象引用变量分配内存。
public void show(){
Animal animal = null;
}
Run Code Online (Sandbox Code Playgroud)
JVM在哪里为动物对象分配内存。它在堆栈中吗?否则它不提供任何内存,因为它被标记为null。我确定它没有在堆中分配内存。
任何人都可以消除我的疑虑。
我认为参考动物将被存储在堆栈本身中,直到该方法完成执行为止,但是对象的状态将存储在堆中。
因此,在上述情况下,指向null的对象将在堆栈本身中分配为null,否则,如果初始化该对象,则它将在堆中具有该对象的地址。