类加载和对象创建的流程如下:
1. 类加载:当程序需要使用某个类时,JVM会先检查该类是否已经被加载到内存中。如果没有,则按照以下顺序进行类加载:
- 加载:通过类的全限定名找到对应的.class文件,并将其读入内存中。
- 验证:验证.class文件的格式、语义等是否符合Java规范。
- 准备:为类的静态变量分配内存,并设置默认值。
- 解析:将类中的符号引用转换为直接引用。
- 初始化:执行类的初始化代码,包括静态变量赋值、静态块等。
2. 对象创建:当类被加载到内存中后,就可以创建该类的对象了。对象创建的过程如下:
- 分配内存:在堆内存中为对象分配一块连续的内存空间。
- 初始化:将分配的内存空间清零,即将所有属性的默认值赋给对象。
- 执行构造方法:调用对象的构造方法,对对象进行初始化。
- 返回对象引用:将对象的引用返回给程序,以便程序可以操作该对象。