Java资源分享网 - 专业的Java学习网站 学Java,上Java资源分享网
深入理解Java中的类加载器 PDF 下载
匿名网友发布于:2024-07-08 11:23:50
(侵权举报)
(假如点击没反应,多刷新两次就OK!)

深入理解Java中的类加载器 PDF 下载 图1

 

资料内容:

 

 

1 JVM中的ClassLoader
JVM中有3个默认的类加载器:
引导(Bootstrap)类加载器。用C/C++写的,在Java代码中无法获取到。主要是加载存储在
<JAVA_HOME>/jre/lib 目录下的核心Java库,对应的加载路径是 sun.boot.class.path
扩展(Extensions)类加载器.用来加载 <JAVA_HOME>/jre/lib/et 目录下或者对应的加载路径
java.ext.dirs 中指明的Java扩展库。Java 虚拟机的实现会提供一个扩展库目录。该类加载器在
此目录里面查找并加载 Java 类。该类由 sun.misc.Launcher$ExtClassLoader 实现。
Apps类加载器(也称系统类加载器)。根据 Java应用程序的类路径(java.class.path
CLASSPATH环境变量)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。可以通
ClassLoader.getSystemClassLoader() 来获取它。该类由
sun.misc.Launcher$AppClassLoader 实现,它的parent类加载器是ExtClassLoader
下面通过一个示例来看一下:
 
package classLoader;
public class ClassLoaderTest {
public static void main(String[] args) {
ClassLoaderTest clt=new ClassLoaderTest();
ClassLoader cl=clt.getClass().getClassLoader();
System.out.println(cl);
System.out.println(cl.getParent());
System.out.println(cl.getParent().getParent());
System.out.println(ClassLoader.getSystemClassLoader());
System.out.println(System.getProperty("sun.boot.class.path"));
System.out.println(System.getProperty("java.ext.dirs"));
System.out.println(System.getProperty("java.class.path"));
}
}