java 类加载机制

类加载过程是什么呢?

当我们用java命令运行某一个类的main函数启动时,首先需要通过类加载器把主类加载到jvm

通过java命令执行代码的大体流程如下

其中loadClass的类 加载过程 如下 ->

加载 ->> 验证 ->> 准备 ->> 初始化 ->> 使用 ->> 卸载

加载 -> 在硬盘上查找并通过IO读入字节码文件,使用到类时才加载 , 例如类调用的main()方法 new对象等等
,在加载阶段会在内存中生成一个代表类的 java.lang.Class 对象, 作为方法区这个类的各种数据的访问入口

验证 -> 校验字节码文件的正确性

解析 -> 将符号引用替换成直接引用 ,该阶段会把一些静态方法(符号引用,比如main()方法 )替换为指向数据
所存内存的指针或句柄等(直接引用),这是所谓的静态链接过程的(类加载期间完成),动态链接是在程序运行期
间完成符号引用替换为直接引用

初始化 - > 对类的静态变量初始化为指定的值,执行静态代码块


类被加载到方法区后主要包含 运行时常量池,类型信息, 字段信息 ,方法信息 ,类加载引用,对应加载器的引用
对应class实例的等信息

posted @ 2021-05-26 21:24  xiyue001  阅读(49)  评论(0)    收藏  举报