码迷,mamicode.com
首页 > 其他好文 > 详细

类加载器

时间:2015-03-17 23:14:00      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

1.系统默认三个类加载器,每个加载器是负责加载特定位置的类,本身也要被类加载器BootStrap加载
    BootStrap  ExtClassLoader  AppClassLoader

2.Java虚拟机中所有类加载器采用具有父子关系的树形结构进行组织,在实例化每隔类加载器对象时,
    需要为其指定一个父级类加载器对象或者默认采用类加载器为其父级加载器。
    类加载器之间的父子关系和管辖范围图。

    BootStrap--------JRE/lib/rt.jar

    ExtClassLoader----->JRE/lib/ext/*.jar

    AppClassLoader----->CLASSPATH指定的所有jar或目录

    MyClassLoader------>我们创建的类加载器目录(需要继承ClassLoader)

3.类加载器的委托机制
    每个类加载器加载类时,先委托给其上级类加载器。
    面试题:能不能自己写一个类叫javalanguage.system?
    答案:写了也不会加载。

4.编写类加载器
    实例:对class文件进行加密的工具类
5.管理资源和配置文件
    注意:ClassLoader只能读取到类路径下的文件

    1.使用类加载器获取输入流
    //1.1获取当前类的加载器
    ClassLoader cl = 类.class.getClassLoader();
    //1.2使用cl获取文件输入流
    InputStream in = cl.getResourceAsStream("/b.properties");

    2.使用类加载器获取文件的路径。
    //2.1获取当前类加载器
    ClassLoader cl = 类.class.getClassLoader();
    //2.2使用类加载器获取文件的URL
    URL url = cl.getResource("/com/itheima/servlet/c.properties");
    //2.3获取url的路径
    String path = url.getPath();

类加载器

标签:

原文地址:http://www.cnblogs.com/tolvgx/p/4345620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!