Java 中的 ClassLoader 如何工作?\
javaobject oriented programmingprogramming更新于 2024/5/9 13:51:00
Java 类在编译后以 字节码 的形式存储在 .class 文件 中。ClassLoader 在需要时将 Java 程序的类加载到内存中。ClassLoader 是分层的,因此如果有加载类的请求,它将被委托给父类加载器。
Java 中的 ClassLoader 类型如下
- Bootstrap ClassLoader
- Extensions ClassLoader
- System ClassLoader
示例
public class ClassLoaderTest { public static void main(String[] args) { System.out.println("class loader for this class: " + ClassLoaderTest.class.getClassLoader()); System.out.println("class loader for DNSNameService: " + sun.net.spi.nameservice.dns.DNSNameService.class.getClassLoader()); System.out.println("class loader for HashMap: " + java.util.HashMap.class.getClassLoader()); } }
输出
class loader for this class: sun.misc.Launcher$AppClassLoader@73d16e93 class loader for DNSNameService: sun.misc.Launcher$ExtClassLoader@70dea4e class loader for HashMap: null