我搜索了一些内容,试图理解java源文件是如何执行的。我没有找到清晰的答案来说明从JRE和JDK术语开始到结束的步骤。因此,我正在写出我从不同博客中理解到的内容,但仍存在一些空白。对我的理解进行纠正是非常欢迎的。问题一和问题二标记为Q1和Q2,在第二点下面。
编写一个HelloWorld.java文件
javac HelloWowrld.java会生成HelloWorld.class。这个class文件就是字节码。现在,我可以把在Mac上生成的这个字节码带到Windows机器上运行,应该可以正常工作。
Q1:现在这个编译成字节码,这是真正的编译还是解释?
Q2:javac必须是JDK的一部分而不是JRE?JRE包含JVM和其他库以创建运行时环境。JVM(本身是平台相关的)执行字节码到机器码。实际上是JVM的即时编译器完成了字节码到机器码的真正编译部分,同时缓存了字节码(如果需要)。
- 垃圾回收包含在JRE中。
javac
。 - SJuan76