1.类加载运行全过程
当我们使用java命令运行某个main函数启动程序时,首先需要通过类加载器把主类加载到JVM.
主要用到的类为loadClass,loadClass的类加载过程有如下过程
加载--》验证--》准备-》》解析》》初始化》》使用》》卸载
加载:
在硬盘上查找并通过io读写字节码文件,使用类时才加载,例如调用来的main方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。
验证:验证字节码的准备性
准备:给累的静态变量分配内存
解析:将符号引用替换为直接引用,该阶段会把一些静态方法换为指向数据所存内存的指针或句柄等
初始化:对类的静态变量初始化为指定的值,执行静态代码块