我做了一些搜索,试图了解 java 源文件是如何执行的。我找不到明确的答案来说明 JRE 和 JDK 行话中从头到尾的步骤。所以我正在写我从不同博客中理解的内容,但确实存在一些空白。非常欢迎对我的理解进行更正。标有 Q1 和 Q2 的两个问题在第 2 点下方。
编写一个 HellowWorld.java 文件
javac HelloWowrld.java 给出了HelloWorld.class。那就是它给出了一个字节码的类文件。现在我可以获取在 Mac 中生成的这个字节码并转到 Windows 机器并运行它应该可以正常工作。
Q1:现在这个编译成字节码,这真的是编译还是解释?
Q2:Javac 必须是 JDK 而不是 JRE 的一部分?JRE 包含用于创建运行时环境的 JVM 和其他库。JVM(它本身依赖于平台)将字节码执行为机器码。即时编译器实际上是 JVM 的一部分,将字节码的真正编译部分转换为机器码,并在必要时缓存字节码。
- 垃圾收集包含在 JRE 中。