了解类加载器

类加载器就是加载类的工具。Java虚拟机提供了多个类加载器,系统默认提供了三个类加载器,每个加载器负责加载特定位置的类。这三个类加载器分别是:BootStrap ,ExtClassLoader,AppClassLoader;

这三个类加载器的层次体系:Bootstrap Loader -> ExtClassLoader -> AppClassLoader。


Bootstrap Loader搜索路径是系统参数,它的搜索路径为jdk目录/jre/lib下的一些jar包;
ExtClassLoader的搜索路径为jdk目录/jre/lib/ext下的所有class或jar包;
AppClassLoader的搜索路径为系统的classpath。

 

AppClassLoader和ExtClassLoader的搜索路径可以修改,但是不能在执行时间动态更改。

 

java中类装载采用“代理机制”,即子装载器如果需要装载一个类文件,首先会将此任务提交给父装载器,
如果父装载器找不到此类文件,才有子装载器来装载类文件,如果子装载器也找不到,
那么就会报告ClassNotFoundException异常。

 

类加载器本身是一个类,那么累加载器类又是由谁加载呢?是bootStrap 类加载器。这个类加载器是特殊的,它不是一个类,它不需要被加载器加载。它是嵌在Java虚拟机里的,Java虚拟机运行的时候它就存在了,不需要被别人加载。

 

自定义类加载器

 

自定义类加载器必须继承 ClassLoader 类。

 

 

 

参考资料:张孝祥Java基础加强视频--类加载器编写原来分析 及源码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值