黑马程序员-类加载器

来源:互联网 发布:安全风险矩阵怎么算 编辑:程序博客网 时间:2024/04/30 06:56
--------------------- 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
原创粉丝点击