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

相关文章