public class Main {
public static void main(String[] args) {
System.out.println(String.class.getClassLoader());
System.out.println(Main.class.getClassLoader());
}
}
分别输出null和AppClassLoader,为什么String是null?自己写的类即classpath下的是通过AppClassLoader加载,jdk里的类是通过哪个加载器加载的?
String的类加载器是bootstrap class loader,这种方式的类加载会被显示成null
String 是由引导类加载器 (bootstrap class loader)来加载的, 而
引导类加载器
是用原生C++代码来实现的, 并不继承自java.lang.ClassLoader. 我们在程序中是获取不到这个类加载器的.