Java说“写一次,到处运行”。甚至像C,C ++这样的其他语言也只编写一次,但只有在平台发生变化时才重新编译。因此,对于Java编程的新手来说,不应该“编译一次,到处运行”更清晰和准确吗?
答案 0 :(得分:1)
当您编译.java
文件时,它会生成.class
文件,该文件被称为Byte Code
,而当我们谈论C / C ++时则不是这样。
现在生成的字节代码可以在任何地方运行(无论平台如何),前提是机器上有JVM。
当我们说写一次它意味着生成一段可用的代码时,现在你不能执行一个.java文件,你必须在执行之前编译它。所以没有必要明确提到编译。
最后,重要的是你应该理解这个概念,而不仅仅是单词。
答案 1 :(得分:1)
C ++使用单个编译器将您的C ++代码编译为.exe(Windows的可执行文件格式)和基于Unix / Linux的操作系统的.out或ELF文件格式。因此,它将生成一个特定于它所遵循的操作系统的物理可执行文件(位代码格式)。
现在在java的情况下,我们的源代码(.java)文件将被编译成.class文件(字节代码格式),然后每个操作系统将拥有自己的JRE版本(Java运行环境)是一个解释器,有助于将生成的.class文件运行/执行到OS内存中(将其转换为位代码格式)。所以在这种情况下我们需要编译器只编译我们的类,解释器将帮助在各自的操作系统中执行该类。换句话说,对于Java,编译一次就可以执行。
如果我们想在一个平台上执行Write Once并运行到C ++的不同平台方法,我们可以遵循这两个步骤中的任何一个。
仍然没有一种方法可以被认为是C ++的WORA概念。 更多的Java不是唯一存在的跨平台语言,还有其他语言,如C#等,所有都遵循相同的概念,不生成位代码格式,而编译为位代码只是机器/平台或操作系统特定。
我希望你现在能清楚地理解它。