黑马程序员技术交流社区

标题: java为什么跨平台性良好? [打印本页]

作者: 黑马-周建    时间: 2013-2-8 01:15
标题: java为什么跨平台性良好?
java语言支持跨平台,我就不知道为什么java语言比其他语言跨平台性好》各位大侠,请教一下
作者: 郭孟涛    时间: 2013-2-8 01:37
java开发了一个java虚拟机简称JVM,他的作用就是专门处理这个跨平台问题,只要平台上有安装jvm了。就可以运行java程序。
别的语言,例如c语言,只能在window操作系统上。其它操作系统不支持。如果c语言可以开发一个类似的JVM那么或许可以改善。



Java平台由Java虚拟机(Java Virtual Machine,简称JVM)和Java 应用编程接口(Application Programming Interface,简称API)构成。Java 应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。
作者: dzr19850306    时间: 2013-2-8 08:41
用煮饭的例子说明吧:

现在煮饭,你可以用一般的铁锅,可以用高压锅,可以用电饭煲,可以用大木桶蒸饭。
在这四个选择中。
一般的程序语言,都是选择直接用这些工具完成。
比如用铁锅,就有铁锅的做法,用木桶蒸饭,就有木桶的做法。(米饭从生到熟,一次性做完)

JAVA呢,则有一点的不同。
它不管你做什么饭,它先用一个JAVA锅,把米饭做到七分熟,然后再看你要做成什么,就放到不同的锅里去做。
做到七分熟是你的事情,剩下的则是JAVA给你完成。

这样,对于JAVA程序员来说,不管你做成什么,你都只要完成这个七分熟的工作,不管你做哪种饭,你都只要完成这个就好了。
对于C++来说,当你选择做哪种米饭的时候,你就需要选锅,从头到尾做了。


说几点额外的:
1,这其中有好的地方,肯定也有些不好的地方。
2,这个需要一定的特殊的技术的,不是说每种语言都可以如JAVA一样,保证七分熟的东西能够方便容易转到其他锅里。
3,JAVA每一个平台下的虚拟机,其实也能算是一个“编程”的过程。可移植,就如同你的一部分工作,最后被JAVA的开发者提供的工具完成。

作者: 郭冰川    时间: 2013-2-8 09:27
Java语言的特点:跨平台性
什么是跨平台性?
        |-通过Java语言编写的应用程序在不同的系统平台上都可以运行。
原理是什么?
        |-只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可。
由JVM来负责Java程序在该系统中的运行。

例如:
Java程序->windows版的JVM
Java程序->linux版的JVM
Java程序->mac版的JVM
因为有了JVM,所以同一个Java程序在三个不同的操作系统中都可以执行。这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。
Java语言是跨平台的,而JVM不是跨平台的。


作者: 逍林游    时间: 2013-2-8 09:35
说白了就是因为有JVM,Java虚拟机可以在各种平台虚拟出java运行环境(JRE)······
作者: 黑马-周建    时间: 2013-2-13 02:26
谢谢,大家,这个问题,我已经清楚了,但是,我不知道,怎么把这个问题改为已解决
作者: 曹玉龙    时间: 2013-2-13 11:34
JVM的事楼上的同学们说的很清楚了,改标题,就是重新编辑下贴子就可以




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2