1.java内存中的成员分布
方法区:存放class文件;静态地址-->class文件中和堆内存中保存的都是静态标记(地址),该静态成员变量真正的值在静态区;
堆:存放new出来的东西(在堆中开辟一块空间,将类中的东西[成员变量及其赋值,静态地址等]复制一份给新对象);
栈:局部变量、对象名(指向new的地址);
2.成员变量与局部变量的对比
类中位置
内存中位置
生命周期
初始值
作用范围
成员变量
类中方法外
堆内存
随着对象的创建而出现,
垃圾回收器的回收而消失
有初始值,一般就是数据类型的默认值
整个类
局部变量
方法内
栈内存
随着方法的入栈而出现,方法的出栈而消失
没有初始值
定义他的地方开始,到定义他的代码块的结束
若是对此理解不深刻,可做附加上机练习和面试题,便于更好的掌握^_^