类的生命周期主要分为几个板块:装载,链接,初始化,对象生命周期,卸载。
一旦java文件经过编译后,变成了二进制的class,类的生命周期就在JVM中开始了:
1.装载:把.class文件装载到JVM中,创建一个该类的Class对象,来表示该类,封装类的属性;
2.链接:在把.class文件装进来后,需要通过链接来把他装成可运行状态,分为三个步骤;
a.检验:检查该二进制文件是否符合当前的JVM版本;
b.准备:为类中的静态成员分配空间,自动设置默认值;
c.解析:将常量池中的引用,由符号引用改变为直接引用,因此可以更直接快速的对类以及成员进行引用调用;
3.初始化。这里指的是类的初始化,还未开始对象初始化,类的初始化可由一下几种情况引起:
a.对象实例化或者调用类的静态成员;
b.通过反射机制中的类初始化,如forName();
c.子类的初始化也带动父类的初始化;
d.main()函数的调用会所在类进行初始化。
4.进入对象的生命周期:对象实例化、垃圾收集、对象终结。
5.当对象生命周期结束,并且没有任何其他引用只想该类的Class对象的时候,该类就被卸载。