最近接触了Java类加载器,突然意识到,没有完全理解当有人调用时发生了什么step-by-step
java -jar App.jar
我猜
- 创建了一个新的 JVM 实例
- 使用ClassLoader加载主类和其他类
- 字节码从main()方法开始执行
但我仍然认为还有很多事情我需要了解更多。
- 谁以及如何决定哪些类应该在启动时加载以及哪些需要时加载?
我发现了两个相关问题,但没有解释如何将其应用于 Java 现实。
最佳答案
•Who and how decides which classes should be loaded at startup and which once needed?
我们需要了解 java 类加载的基础知识。最初引导类加载器(它作为 VM 本身的一部分在本地实现)负责加载核心系统类。然后还有其他类加载器以及扩展、系统、用户定义(可选)类加载器,它们决定何时以及如何加载类。 Fundamentals of class loading
关于java - java程序启动时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13927217/