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