最近在学习JVM,困惑java成员变量存储位置是栈还是堆

可以这样理解:方法内定义的变量全部在栈中,方法外定义的变量全部在堆中。静态变量(方法外)在方法区,也算是在堆中。
■网友的回复
可以看下Java堆.栈和常量池 笔记,有详细讲解。
■网友的回复
变量放在栈里,变量所指向的对象放在堆里\u0026lt;来自《疯狂java讲义》李刚著 \u0026gt;
■网友的回复
堆呀
■网友的回复
这个问题感觉不太对。类的成员是一种定义阶段,不是使用阶段,在栈还是堆和类的使用有关系。就是你怎么使用类所产生的对象,是成员,还是函数参数?多半在堆上,推测,学业不精,惭愧。
■网友的回复
他说的是成员变量.. 成员变量是在堆里public class Test{ int a ; public static void main(String args){ int b; System.out.println(a); //打印结果为0 System.out.println(b); // 错误:可能尚未初始化b}}


    推荐阅读