类加载机制

类加载的过程:

加载 -> 连接(验证、准备、解析) -> 初始化

  1. 验证:1.文件格式 2.元数据 3.字节码 4.符号引用
  2. 准备:为类变量分配内存并设置初始化值
  3. 解析:虚拟机将常量池内的符号引用替换为直接引用

类加载器:

从java虚拟机的角度来讲,只存在两种类加载器:
1.启动类加载器,C++语言实现,属于虚拟机自身
2.其他类加载器,java语言实现,独立于虚拟机外部

类加载器的种类:
1.启动类加载器 2.扩展类加载器 3.应用程序类加载器(系统类加载器)在这里插入图片描述

三种加载器虽称为父子类关系,一般不会以继承关系来实现,而是都使用组合关系来复用父加载器的代码。

双亲委派模型的工作过程是:
如果一个类加载器收到了加载请求,它首先不会自己加载这个类,而是把这个请求委派给父加载器去完成,每一个层次的类加载器都是如此,因此所以的加载请求最终都会委派到顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求时(它的搜索范围内没有找到所需的类),子加载器才会自己去加载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值