文章目录
在使用对象时,类加载器把.class文件加载到内存中运行
获取加载器
/*
启动类加载器(Bootstrap ClassLoader):
是JVM的一部分,负责加载Java核心类库(如rt.jar)。
扩展类加载器(Extension ClassLoader):
负责加载Java的扩展类库(如jre/lib/ext目录下的JAR文件)。
应用程序类加载器(Application ClassLoader):
也称为系统类加载器,负责加载应用程序类路径上的类(如CLASSPATH所指定的目录或JAR文件)。
是ClassLoader类的实例,通常通过ClassLoader.getSystemClassLoader()方法获取。
*/
// 获取系统类加载器
ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
// 获取平台类加载器
ClassLoader extensionClassLoader = systemClassLoader.getParent();
// 获取启动类加载器
ClassLoader bootstrapClassLoader = extensionClassLoader.getParent();
System.out.println(systemClassLoader);
System.out.println(extensionClassLoader);
System.out.println(bootstrapClassLoader);
系统类加载器:
ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
// 获取资源文件的URL或输入流
URL url = systemClassLoader.getResource("");
InputStream is = systemClassLoader.getResourceAsStream("");
// 加载本地class文件获取class对象
Class<?> aClass = systemClassLoader.loadClass("");
// 获取父类加载器
ClassLoader parent = systemClassLoader.getParent();