java类加载器笔记

类加载器加载顺序:

1.启动类加载器:Bootstrap ClassLoder

2.扩展类加载器:Extendsion ClassLoder

3.应用类加载器:Application ClassLoder

双亲委派模型:所有类加载器在加载类的时候都会让父类加载器先加载该类,当父类加载器无法加载该类时,该类才会自行加载类。这样避免了某些类在加载时出现不同类型,如java.lang.Object是所有类的父类,应用类加载器在加载用户自定义类时,会先加载该类所有的父类,若该类被应用类加载器加载后,其他类加载器在重复加载,则会出现不同类型的Object类。

Bootstrap ClassLoad是采用c++写的加载器,因此java代码无法获取该加载器,这个类负责加载JAVA_HOME/bin目录或者被-XBootClassPath所指定的并且是虚拟机识别的(仅按照文件名识别,如rt.jar,名字不符合的类库即使放在lib目录中也不会被加载)类库加载到虚拟机内存中。

Extendsion ClassLoader 主要加载jdk启动时的jar包<JAVA_HOME>\lib\ext目录中,或者被java.ext.dirs系统变量所指定的路径中的类库,开发者可以直接使用扩展类加载器。获取:类名.Class.getClassLoader().getParent().属于应用类加载器的父类

Application ClassLoader 加载自己写的代码类。className.Class.getClassLoader获取应用类加载器

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值