java类加载器
来源:互联网 发布:下颌第一磨牙雕刻数据 编辑:程序博客网 时间:2024/06/06 02:28
类加载器的代理模式
1、启动类加载器BootstrapClassLoader
2、扩展类加载器Extension ClassLoader
3、系统类加载器App ClassLoader
如果一个类加载器收到了一个类加载请求,它不会自己去尝试加载这个类,而是把这个请求转交给父类加载器去完成。每一个层次的类加载器都是如此。因此所有的类加载请求都应该传递到最顶层的启动类加载器中,只有到父类加载器反馈自己无法完成这个加载请求(在它的搜索范围没有找到这个类)时,子类加载器才会尝试自己去加载。委派的好处就是避免有些类被重复加载。
线程上下文加载器
java在设计的时候,将很多功能分割出去,以方便第三方为自己开发组件,这被成为服务提供者接口(SPI)。常见的SPI有jdbc,jndi,jaxp等。这些接口存储在java核心类库中。如 JAXP 的 SPI 接口定义包含在 javax.xml.parsers包中。而实现则是由程序员引入的jar包完成的。作为核心库的一部分,这些SPI的接口应该由系统引导类加载器(Bootstrap ClassLoader)完成加载,系统类加载器显然不能取外部jar包加载它门的实现,也不能代理给App ClassLoader,因为大小辈分乱了。
线程上下文类加载器是从jdk1.2开始引入的。通过java.lang.Thread中的方法 getContextClassLoader()和 setContextClassLoader(ClassLoader cl)用来获取和设置线程的上下文类加载器。如果没有通过 setContextClassLoader(ClassLoader cl)方法进行设置的话,线程将继承其父线程的上下文类加载器。Java 应用运行的初始线程的上下文类加载器是系统类加载器App ClassLoader。在线程中运行的代码可以通过此类加载器来加载类和资源。
使用线程上下文类加载器,可以在执行线程中抛弃双亲委派加载链模式,使用线程上下文里的类加载器加载类。
- Java类加载器
- java类加载器
- java类加载器
- Java类加载器
- java类加载器
- Java类加载器
- Java 类加载器
- java类加载器
- java类加载器
- Java 类加载器
- -java 类加载器
- Java-类加载器
- Java类加载器
- Java 类加载器
- Java 类加载器
- java类加载器
- java类加载器
- Java-----类加载器
- c#的结构,部分类
- yum局域网软件源搭建
- Maven教程-解决web项目发布到tomcat中没有lib依赖的问题
- ActiveMQ的消息签收机制
- 第二十天总结
- java类加载器
- java 中“==”与“equal” 的区别
- 安装软件包
- 关于序列点的思考
- 日常写Bug——Python3打印完数据后不换行
- 剑指offer——面试题35:第一个只出现一次的字符
- 一些常见的算法,包括选择排序法,冒泡排序法,折半查找法,和函数的使用;
- 信息学奥赛一本通(C++版) 第二部分 基础算法 第八章 广度优先搜索算
- Web AppBuilder学习笔记1