public class Demo {
public static int a = 1;// 类变量
public int b = 2;// 成员变量
public void method() {
int c = 3;// 局部变量
int d = 3;// 局部变量
c = 4;
}
}
除了局部变量存放在栈中 , 其余都存放在堆中 , 栈中的变量随着方法的入栈而入栈 , 随着方法出栈而出栈 。
还有一个重要特性 , 栈中的数据可以共享 。在栈中存放一个变量为c的引用 , 在堆中开辟一块内存区域存放3 , c指向这块区域 , d在堆中寻找有无存放3的内存地址 , 如果有则指向这个地址 , 没有则重新开辟一块 , c.d指向同一块内存区域 , 当c=4 , 如果没有等于4的 , 则会开辟一块新的内存区域 , c指向由3变为4 。所以d不会变化 。
方法区存放的是类的信息和方法的信息 , 方法的执行还是在栈中进行 。
Student s=new Student();
new Student()会在堆中开辟一块内存空间 , s为他的引用 , 存放在栈中
【白话理解java内存,new出的对象放在了哪】
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
