黑马程序员-JAVA基础加强之类加载器
来源:互联网 发布:asp网站模板源码 编辑:程序博客网 时间:2024/05/16 05:12
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
一、Java Virtual Machine有三种类加载器
1)启动类加载器:启动类加载器是用本地代码实现的类装入器,它负责将<Java_Runtime_Home>/lib下面的类库加载到内存中,但是不会加载<Java_Runtime_Home>/lib存在的陌生类,开发者通过将要加载的非JDK自身的类放置到此目录下期待启动类加载器加载是不可能的。
2)标准扩展类加载器:扩展类加载器是由Sun的ExtClassLoader实现的。它负责将<Java_Runtime_Home>/lib/ext或者由系统变量java.ext.dir指定位置中的类库加载到内存中。
3)系统类加载器:系统类加载器是由Sun的AppClassLoader(sun.misc.Launcher$AppClassLoader)实现的。AppClassLoader是加载Classpath中配置的类库。
二、类加载双亲委派机制
Java Virtual Machine在加载类时默认采用的是双亲委派机制。通俗的讲,就是某个特定的类加载器在接到加载类的请求时,首先将加载任务委托给父类加载器,如果父类加载器可以完成类加载任务,就成功返回;只有父类加载器无法完成此加载任务时,才自己去加载。
加载器的加载顺序:
BootstrapClassLoader(张孝祥老师称其爷爷类)
ExtensionClassLoader(张孝祥老师称其爸爸类)
AppClassLoader
自定义的类加载器
怎么知道当前类使用了什么类加载器呢?
System.out.println(this.getClass().getClassLoader();//得到当前的类加载器
System.out.println(this.getClass().getClassLoader().getParent());//得到当前类的父加载器
System.out.println(this.getClass().getClassLoader().getParent().getParent());//得到当前类的父加载器的父加载器
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------
- 黑马程序员-JAVA基础加强之类加载器
- 黑马程序员之Java基础加强之类加载器
- 黑马程序员_基础加强之类加载器
- 18--黑马程序员--基础加强之类加载器
- 黑马程序员——java加强之类加载器
- Java基础加强之类加载器
- Java基础加强之类加载器
- 黑马程序员_Java加强之类加载器与代理
- 基础加强之类加载器
- 黑马程序员-JAVA基础加强-类加载器
- 黑马程序员 java基础加强_类加载器
- 【黑马程序员】java基础加强---------类加载器(classLoader)
- 【黑马程序员】Java基础加强17:类加载器ClassLoader
- 黑马程序员—Java基础加强(类加载器)
- 黑马程序员---java基础加强---类加载器
- 【黑马程序员】java基础加强_类加载器
- 黑马程序员-->Java基础加强-->类加载器
- 黑马程序员基础加强---类加载器
- fs mtd driver架构美图
- 在VS2008里编译x264(菜逼专用)
- 节点中的nodeName、nodeValue、nodeType
- 并发控制乐观锁Version
- 模板操作
- 黑马程序员-JAVA基础加强之类加载器
- 中科院 陈玉福算法简答题
- opnet的flood泛洪路由实现
- minicom 轻松使用
- JavaScript禁止网页操作
- 重启博客
- MyBatis主配置文件
- 第十一周-求两个数的最大公约数!!
- 配置Flex项目出错