关于java的5个问题

问题描述 投票:0回答:4

1) javac.exe 是 sun 的 java 编译器实现吗?

2)并且java编译器被定义为将java源代码翻译成java字节码的东西,

3)而 JVM 被定义为接受 java 字节码作为输入并实际告诉机器做事的东西。

4)并且有许多不同种类的 JVM,实际上不同的操作系统需要不同的 JVM,

5)而Windows 98上运行的JVM与Windows 7上运行的JVM不同?

java jvm javac bytecode
4个回答
2
投票

是的。 (JVM = Java“虚拟”机)


2
投票
  1. 是的
  2. 是的

而且它不允许我发布两个以上的链接,无论如何,一个简单的搜索会比在这里等待回复更快地产生更多信息。


1
投票

我认为你问这些问题是为了帮助你理解JAVA的一些基本概念,所以我们不要挖得太深,考虑这里的许多“例外”。

1) Sun 的编译器实现通常称为 javac.exe,但其他编译器也可能将其可执行文件命名为 javac.exe(我认为 c 表示编译器)。

2)还有更多内容,但这总的来说是正确的

3)这并不完全错误。不同的 JVM 可能有不同的实现,但 JVM 的想法是将(假定的)通用字节码转换为可以在该特定计算机上执行的机器/操作系统特定代码。

4)基本正确。只是我们对“不同操作系统”的定义有点宽松。一些操作系统共享相同的体系结构,并且可以使用相同的 JVM。同一操作系统也可以有不同的 JVM 实现。

5)我相信这是真的。


1
投票

1) javac.exe 是 sun 的 java 编译器实现吗? - 这取决于,因为任何公司/开发人员都可以按照 JVM 规范分发 Java 编译器。

2)java编译器被定义为将java源代码翻译成java字节码的东西, - 是的,它将源代码编译为字节代码

3)而 JVM 被定义为接受 java 字节码作为输入并实际告诉机器做事的东西。 - 是的

4)而且JVM有很多种,实际上不同的操作系统需要不同的JVM, - 正确,对于每个操作系统,它应该有自己的 JVM 实现,您不能在 Linux 上运行适用于 Windows 的 JVM

5)Windows 98 上运行的 JVM 与 Windows 7 上运行的 JVM 不同吗? - 是的

除了问题 2、3、4、5 之外,编译器还会将源代码转换为 JVM 实现的字节码,以便了解 JVM 在何处运行。

© www.soinside.com 2019 - 2024. All rights reserved.