为什么 Java 是‘一次编写,随处运行’?
原文:https://www . geesforgeks . org/why-is-Java-write-one-and-run-anywhere/
JVM(Java 虚拟机)充当运行 Java 应用的运行时引擎。JVM 实际上是调用 Java 代码中存在的主方法。JVM 是 JRE(Java 运行时环境)的一部分。
Java 应用程序被称为 WORA(写一次运行在任何地方)。这意味着程序员可以在一个系统上开发 Java 代码,并可以期望它在任何其他支持 Java 的系统上运行,而无需任何调整。这都是可能的,因为有了 JVM。
WORA 有多爪哇:
在像 C、C++这样的传统编程语言中,当程序被编译时,它们曾经被转换成特定底层硬件所理解的代码,所以如果我们试图在另一台具有不同硬件的机器上运行相同的代码,而该机器理解不同的代码会导致错误,因此您必须重新编译代码以被新硬件理解。
在 Java 中,程序不被转换成硬件直接理解的代码,而是被转换成字节码(。类文件),由 JVM 解释,所以一旦编译就生成字节码文件,可以在任何有 JVM( Java Virtual Machine)的地方(任何机器)运行,因此具有一次写入,随处运行的性质。
示例:WORA 的实际实现使用一个简单的 JAVA 程序来检查一个数字是偶数还是奇数。
import java.util.Scanner;
class GFG {
public static void main(String args[])
{
int num;
System.out.println("Enter a number:");
Scanner input = new Scanner(System.in);
num = input.nextInt();
if (num % 2 == 0)
System.out.println(num + " is even");
else
System.out.println(num + " is odd");
}
}
-
用于编译(在 Windows 10 上完成):
```java javac GFG.java
```
-
编译后,相应的文件夹中会有一个类文件,名为:
```java GFG.class
```
-
当复制字节码时(。类)编译到一个 macOS 10.14.3 并运行它,我们得到以下输出。
爪哇程序在窗子上编译并在苹果电脑中运行
结论: 综上所述, Java 在编译时会创建一个字节码(。类文件),可以在任何支持 JVM 的机器上运行。所以一旦编译了它就不需要在它运行的每台机器上重新编译,JVM 将字节码转换为底层硬件能够理解的代码。
版权属于:月萌API www.moonapi.com,转载请注明出处