在 Java 中,据说所有的类都由类加载器加载。
所以首先,引导类加载器加载所有 rt.jar 类。
我仍然很困惑,因为Classloader也是一个类, 那么谁来加载这个BootStrapClassloader呢?
原文由 Sunny Gupta 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Java 中,据说所有的类都由类加载器加载。
所以首先,引导类加载器加载所有 rt.jar 类。
我仍然很困惑,因为Classloader也是一个类, 那么谁来加载这个BootStrapClassloader呢?
原文由 Sunny Gupta 发布,翻译遵循 CC BY-SA 4.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
答案:当 JVM 启动时,会运行一段特殊的机器代码来加载系统类加载器。此机器代码称为 Bootstrap / Primordial (或有时 - Null )类加载器。
与所有其他类加载器一样,它根本不是 Java 类。引导类加载器是启动整个类加载过程的特定于平台的机器指令。
除了引导类加载器之外,所有类加载器都作为 Java 类实现。 必须加载第一个 Java 类加载器才能启动该过程。加载第一个纯 Java 类加载器是引导类加载器的工作。
引导类加载器还负责加载支持基本 Java 运行时环境 (JRE) 所需的所有代码,包括 java.util 和 java.lang 包中的类。
来源: http ://www.theserverside.com/tutorial/Classloaders-Demystified-Understanding-How-Java-Classes-Get-Loaded-in-Web-Applications