new对象时的内存变化:
Student s = new Student();
1 加载Student类文件到栈内存,开辟空间。
2 在栈内存为s开辟空间
3 在堆内存为Student对象开辟空间
4 给Student的成员变量分配默认值
5 如果成员变量有给定值则用给定值覆盖默认值
6 通过构造方法给成员变量赋值
7 把Student对象在堆内存的地址值赋给s变量
成员变量的初始化在构造函数之前
new对象时的内存变化:
Student s = new Student();
1 加载Student类文件到栈内存,开辟空间。
2 在栈内存为s开辟空间
3 在堆内存为Student对象开辟空间
4 给Student的成员变量分配默认值
5 如果成员变量有给定值则用给定值覆盖默认值
6 通过构造方法给成员变量赋值
7 把Student对象在堆内存的地址值赋给s变量
成员变量的初始化在构造函数之前
转载于:https://juejin.im/post/5bd972ece51d45686544a02e