整体过程:

加载-》链接-》初始化

类加载过程-图解

 

类加载过程-图解

 

第一个过程-加载

加载:(classloader->方法区)

通过Class全路径名,获取class的二进制字节流

将二进制字节内容放入方法区

在内存中,生成Class对象代表这个class

 

第二个过程-链接

 

校验:

验证字节流合法性、安全性。比如魔术字、版本号

元数据验证:校验Class是否符合规范、

字节码验证:确保语法语义是否OK

符号引用验证,看是否能访问到

准备:

在方法区为class分配内存空间,为static赋默认值

解析:

将常理池中的符号引用,改为直接引用

什么是符号引用:

类加载过程-图解

 

什么是直接引用:直接指向目标的指针,比如,对象就是引用地址

 

 

第三步:初始化:

调用cinit.进行参数构造。

类加载过程-图解

 

类加载过程-图解

公开课视频地址:

https://www.bilibili.com/video/BV1PJ411n7xZ?p=30

相关文章:

猜你喜欢
  • 2021-11-22
  • 2021-05-21
  • 2021-06-09
相关资源
相似解决方案