java类的加载及对象的创建过程
分类:
文章
•
2023-10-10 09:28:35

类加载过程
- 当JVM第一次要使用一个类的时候,需要加载这个类;
- 首先根据classpath的配到硬盘上找这个类的class文件(如果没有配置classpath,就到当前位置找);
- 如果找到这个class,就加载到方法区;
a) 分别将这个类的静态成员加载到静态区域,非静态成员加载到非静态区域;
b) 在静态区域为所有静态成员变量分配空间,赋默认值;
c) 为所有静态成员变量显示赋值
d) 执行所有静态代码块
(c和d具体顺序是按照代码书写的先后顺序)
等到静态代码块都执行完毕,类加载完成;
对象的创建过程
- JVM遇到new关键字,首先回去堆内存中开辟空间;
- 为所有非静态的成员变量分配空间,赋默认值;
- 调用相应的构造函数进栈执行;
- 构造函数执行时首先要执行隐式三步:
a) super():调用父类构造函数 // 如果第一行是this就调用this
b) 给对象中所有非静态成员变量显示赋值;
c) 执行构造代码块;
(b和c具体执行顺序,是按照代码书写的先后顺序)
- 隐式三步执行结束后,开始执行构造函数中的代码;
等到构造函数结束出栈,对象才算创建完成