首页 > 代码库 > Java重要技术(28)类加载器之类加载器的层次关系和委托加载机制
Java重要技术(28)类加载器之类加载器的层次关系和委托加载机制
1.1. 类加载器的层次
类加载器包括三种:
Bootstrap ClassLoader:用于加载JRE的lib目录下的jar文件中的class。
ExtClassLoader:用于加载JRE的lib/ext目录下的jar文件中的class。
AppClassLoader:用于加载classpath下的class。
在加载一个class时,通常应该先委托给parent类加载器来加载,parent类加载器找不到这个类时,才自行加载。实际优先次序从高到低排列是BootStrap ClassLoader,ExtClassLoader,AppClassLoader。
public class ClassLoaderTest { public static void main(String[] args) { ClassLoader loader = ClassLoaderTest.class.getClassLoader(); while(loader!=null){ System.out.println(loader.getClass().getName()); loader = loader.getParent(); } System.out.println(loader); } }
运行结果如下:
sun.misc.Launcher$AppClassLoader
sun.misc.Launcher$ExtClassLoader
null
输出的三个类加载器实际上依次是AppClassLoader,ExtClassLoader,Bootstrap ClassLoader.
Java重要技术(28)类加载器之类加载器的层次关系和委托加载机制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。