java具有平台独立性的原因

来源:百度知道 编辑:UC知道 时间:2024/06/10 12:00:43
与其他相比较的结果。

简单的理解:
平台 :就是操作系统; 要达到与操作系统无关就在操作系统与应用之间
建立一层 jvm
不同的平台用不同的jvm即可;所以jdk jre有不同平台的版本就是这个原因;
但是你编写的java程序编译成的class字节码是在所有的jvm执行都一样的;

所以从这个程度上理解,java是跨平台的,因为他在不同平台上有不同的jvm

java运行依赖于java虚拟机JVM。jvm有支持各种操作系统的版本,因此java是和平台无关的。

因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。

而C/C++不可以跨平台的原因就是编译后的代码在特定的硬件上可以直接执行,换个硬件平台这些代码就不能被执行了。不过正是因为可以直接执行,所以C/C++程序的执行效率要比Java程序高

呵呵 ,我也想过这个问题,将Java的class字节码文件通过Java的jvm直接一次性编译为各平台的机器码,还可以提高Java程序的运行效率,就是级别还不够,不知道从何下手,不过我有个发现,安装了VC后,在进程里面点击Java程序的进程,然后右击选择调试,进入vc那个调试工具,貌似可以看到一些汇编代码,不知道可否以此为灵感,来获取最终的Java机器码文件