加载:查找并加载类的二进制数据。将二进制数据放到运行时数据区的方法区内,通过创建java.lang.Class对象来封装类在方法区中的数据结构。
连接:
1-验证:确保被加载类的正确性。
2-准备:为类的静态变量分配内存,并将其初始化为默认值。
3-解析:把类中的符号引用转换为直接引用。
初始化:为类的静态变量赋正确的初始值。
类的实例化:
1-为新对象分配内存
2-为实例变量赋默认值
3-为实例变量赋正确的初始值
4-java编译器为每一个类都至少生成一个实例初始化方法(构造方法) ,对应class文件中的



