现在的位置: 首页 > 综合 > 正文

黑马程序员-类加载器

2013年08月07日 ⁄ 综合 ⁄ 共 841字 ⁄ 字号 评论关闭

--------------------- android培训java培训、期待与您交流! ----------------------
类加载器 Class Loader
1.概述
Java中的类要加载到内存中(成为字节码,即Class对象),需要类加载器来加载。一般来讲,类加载器也是Java类,也需要加载器来加载,所以在Java中必须要有一个不是Java类的加载器来加载这些加载器,它就是BootStrap。其他的加载器都是Java类,如ExtClassLoader,AppClassLoader和自己定义的加载器。他们的关系如下:
BootStrap是ExtClassLoader的parent,用来加载JRE/lib/rt.jar里面的class文件,即系统class
ExtClassLoader是AppClassLoader的parent,用来加载 JRE/lib/ext/*.jar里的class,即扩展class
AppClassLoader是自定义加载器的parent,用来加载CLASSPATH指定的jar或目录
自定义类加载器,用来加载自己定义的特定目录中的类。

2.类加载器的委托机制
类加载器加载类时,先委托上级(parent)完成,如果上级能完成就不用自己动手了。这样处理的好处在于,避免重复加载同一个类,导致同一个类多份字节码的现象出现。

3.自定义类加载器
class MyClassLoader extends ClassLoader
{
 ...(需要重写 findClass方法来用自己的方法加载类)
}
类加载器都是抽象类ClassLoader的子类,ClassLoader本身使用了模板设计模式,把类中不确定的部分暴露出来给子类去完成,如这里的findClass方法就是自定义的部分。

----------------------android培训java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima

抱歉!评论已关闭.