繁体   English   中英

Java-成员变量的引用在哪里存储在内存中?

[英]Java - Where is the reference of a member variable stored in memory?

我对JVM内存有疑问,希望从大家那里得到帮助和指导。


Class A {
   //memory variable
   int i = 2;
   Integer j = new Integer(3);

   public void static main(){
       //local variable
       int a = 2;
       Integer b = new Integer(3);
   } 
}

在上面的代码中,我想知道对成员变量的引用是否存储在堆或堆栈中。

我想我知道

  • i是成员变量和原始变量。
  • j是成员变量和参考变量。
  • a是局部变量和原始变量。
  • b是局部变量和参考变量。

我的结论是:

成员变量

  1. i和它的值存储在堆中
  2. j及其引用的对象( new Integer(3) )存储在堆中

局部变量

  1. a它的值存储在堆栈中。
  2. b存储在堆栈中,但是它引用的对象( new Integer(3) )存储在堆中。

我的结论正确吗? 我最大的困惑是第二点。 j是否存储在堆中? 请帮我! 提前致谢。

没错

更具体地说, j在堆中,因为它是A类型的对象的一部分,而对象在堆中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM