java - 哪个类加载器负责加载第一个要加载的类?
问题描述
根据此 JVM 规范,类加载器由谁触发加载来C
确定:D
C
Java 虚拟机使用三个过程之一来创建类或接口
C
由 表示的类或接口N
:
如果
N
表示非数组类或接口,则使用以下两种方法之一来加载并因此创建C
:
如果
D
由引导类加载器定义,则引导类加载器启动C
(§5.3.1) 的加载。如果
D
由用户定义的类加载器定义,则相同的用户定义的类加载器会启动C
(第 5.3.2 节)的加载。- ...
那么,基本情况呢?我的意思是,将有第一个要加载的类,显然D
不能在这种情况下定义。
解决方案
Java 虚拟机通过使用引导类加载器(第 5.3.1 节)或用户定义的类加载器(第 5.3.2 节)创建初始类或接口来启动。Java 虚拟机然后链接初始类或接口,对其进行初始化,并调用公共静态方法
void main(String[])
。调用此方法会驱动所有进一步的执行。执行构成主要方法的 Java 虚拟机指令可能会导致附加类和接口的链接(并因此创建),以及调用附加方法。初始类或接口以实现相关的方式指定。例如,初始类或接口可以作为命令行参数提供。或者,Java 虚拟机的实现本身可以提供一个初始类,该类设置一个类加载器,该类加载器反过来加载应用程序。初始类或接口的其他选择是可能的,只要它们与前一段中给出的规范一致。
推荐阅读
- javascript - 尽管完全匹配,但 Firebase 查询返回 null
- r - 从向量输入中按顺序查找变量对
- html - 相对于彼此定位图像
- python - MySQL:“使用 python 拒绝访问 x@localhost'
- sql - sp_executesql 未声明变量
- xamarin - 无法在 Xamarin Android 中打开 Multi-Dex
- javascript - 汉明数字代码不起作用
- apache-spark - 是否有任何性能问题迫使在 spark 中使用 count 进行急切评估?
- php - Gmail API 错误:尝试进行身份验证时出现 redirect_uri_mismatch。(PHP)
- java - JFXButton:无法解析符号