java类加载器

类加载器,分为启动类加载器,扩展类加载器,应用程序类加载器,自定义类加载器

启动类加载:负责加载lib下的类库,或者被 -Xbootclasspath参数指定的路径中,启动类加载器有c++编写,无法直接调用。

扩展类加载器 :负责加载lib/ext目录中的类,或者被java.ext.dirs系统变量指定的路径中的库,由sun.misc.Launcher.ExtClassLoader实现,开发时可以直接调用。

应用程序加载器 :负责加载用户程序中指定的类库,是ClassLoader中的getSystemClassLoader()方法的返回值指定的加载器。开发者可以直接使用,且没有自定义加载器的时,一般情况下就是默认使用这个加载器。

 

双亲委派模型

java类加载器_第1张图片

对于一个类的加载,加载器不会第一时间去加载,而是先找自己的父类加载器去加载类信息,如果父类加载不到那么子加载器才会尝试去加载,这样的话就可以避免一个类文件被两个不同的加载器加载而产生不同的类,也很好保护了Java api核心不会被随意篡改。

你可能感兴趣的:(知识点总结,java类加载器)