C语言】 Java能不能像C语言不通过JVM虚拟机直接编译成二进制机器码,让计算机直接运行?

2020-04-08 10:39发布

1条回答

首先,Java可以直接编译为可以运行的机器码,通过graalvm的native image就可以实现。

但Java当年被设计出来的目的,就是为了不要让它直接编译成机器码,而是编译成虚拟机可执行的的字节码(byte code),从而达到write once, run everywhere的目的。

语言本身与是否是解释型或者编译型无关。通常,没有“必须这么设计”的绝对理由,之所以会是这样,只是因为被设计成这样。

Java的设计理念和C是有区别的:Java是被动让不同的设备兼容它,而C则是主动去兼容不同设备。


一周热门 更多>