类加载机制
一、类的生命周期
二、5种情况必须对类进行“初始化”
1、new 对象
2、反射的时候
3、父类没有初始化的时候,需要先初始化父类
4、Main入口,需要初始化这个类
5、代理invoke时
三、类加载全过程(加载-验证-准备-解析-初始化)
加载过程:
1、获取class文件的二进制流;
2、根据class的格式化数据结构,在方法区生成运行时的数据结构;
3、生成class对象,作为方法区的入口;
验证:
1、验证文件格式,如开头是否时CAFEBABE(这个魔头实在太好记了)
准备:
1、为statics 等字段在方法区分配空间,并设置初值。0 null 之类的;