JVM——虚拟机类加载机制

类加载时机

加载loading

 加载.class文件的方法

 

 

类连接阶段

验证阶段 

 准备阶段

解析阶段

 

 

 初始化

简而言之,为类的静态变量赋予正确的初始值。如果前面的步骤都没有问题,那么表示类可以顺利装载到系统中,此时才会开始执行Java字节码。即:到了初始化阶段,才开始真正的执行类中定义的Java程序代码。

 在加载一个类之前,虚拟机总是试图加载该类的父类,因此父类的<clinit>总是在子类<clinit>之前被调用,也就是会先执行父类的静态变量赋值和静态代码块。

是否生成<clinit> 

 static + final修饰字段的显示赋值操作到底是在哪个阶段进行赋值 

 <clinit>线程安全性

 类的主动使用和被动使用

 

 被动使用的例子,没有初始化不代表没有加载

 

 

 类加载器ClassLoader

类加载的分类:显示加载 vs 隐式加载

 类的命名空间

 类的加载器分类

引导类加载器

 扩展类加载器

 系统类加载器

 用户自定义加载器

 双亲委派机制

定义与本质

 

 双亲委派机制的优势以及弊端

 

 弊端

 三次双亲委派模型的破坏

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值