getClassloader returns null 而不是 bootstrap 类加载器

getClassloader returns null instead of the bootstrap classloader

众所周知,来自 rt.jar 库的 classes 是通过 Bootstrap 类加载器加载的。 java.lang 是 rt.jar 库的一部分。

然而,这个样本

System.out.println(ArrayList.class.getClassLoader());

打印 null 而不是 BootstrapClassLoader.

另外,我知道BootstrapClassLoader不是写在Java里面的。 会是这个原因吗? 我如何确保 class 由 BootstrapCL 加载?

Class#getClassLoader

文档明确警告您注意这种情况。

Returns the class loader for the class.
Some implementations may use null to represent the bootstrap class loader.

记得经常查看相关的 JavaDoc。这对一切都有效,有时它可能是救命稻草。