类加载(Load)
1. 从磁盘中加载Class文件(通过类全名),转换成二进制字节流
2. 将这个字节流所代表的静态存储结构转换为方法区的运行时数据结构
3. 在Java堆中生成一个代表这个类的Class对象,作为对方法区中这些数据的访问入口
链接(Link)
验证
文件格式验证,元数据验证,字节码验证,符号引用验证
解析
把类中的符号引用转换为直接引用,比如变量名,方法名,类名等,需要解析成运行时内存中相关的地址引用。
初始化(Init)
如果类中有静态域或者静态代码块,反编译之后会发现,会自从生成cinit方法,进行初始化