深入分析Java ClassLoader原理
来源:互联网 发布:原生js实现find方法 编辑:程序博客网 时间:2024/06/05 08:07
参见:
http://blog.csdn.net/xyang81/article/details/7292380
自我总结:
java提供的三个ClassLoader
1、BootStrap ClassLoader:称为启动类加载器,是Java类加载层次中最顶层的类加载器,负责加载JDK中的核心类库,如:rt.jar、resources.jar、charsets.jar等
2、Extension ClassLoader:称为扩展类加载器,负责加载Java的扩展类库,默认加载JAVA_HOME/jre/lib/ext/目下的所有jar。
3、App ClassLoader:称为系统类加载器,负责加载应用程序classpath目录下的所有jar和class文件。
加载类过程:
首先由最顶层的类加载器Bootstrap ClassLoader试图加载,如果没加载到,则把任务转交给Extension ClassLoader试图加载,如果也没加载到,则转交给App ClassLoader 进行加载,如果它也没有加载得到的话,则返回给委托的发起者,由它到指定的文件系统或网络等URL中加载该类。如果它们都没有加载到这个类时,则抛出ClassNotFoundException异常。
每一个类都有自己的ClassLoader,看下面代码:
@Test public void test(){ ClassLoader loader = MyClass.class.getClassLoader(); //获得某个类的类加载器 // 或者MyClass.getClass().getClassLoader() while(loader != null) { System.out.println(loader); loader = loader.getParent(); //获得父类加载器的引用 } System.out.println(loader); }结果:sun.misc.Launcher$AppClassLoader@36baf30csun.misc.Launcher$ExtClassLoader@45283ce2null
定义自已的ClassLoader以后看
0 0
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析java classloader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- 深入分析Java ClassLoader原理
- mysql报错Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
- android自定义View基础系列一
- cocos2dx笔记:关于action
- ubuntu下搭建深度学习平台Anaconda
- hadoop操作HDFS文件权限问题
- 深入分析Java ClassLoader原理
- Android Fragment(动态,静态)碎片详解及总结
- QListWidget制作聊天列表
- codeforces 743 C. Vladik and fractions(构造)
- 关于多层 nested loop的估值问题
- Angular.js的数据绑定以及模块作用域
- 3D开发学习-初识SurfaceView
- Java 多线程学习笔记 线程通讯 wait notify notifyAll的理解
- Spring学习笔记之Bean的作用域