java是跨平台,c++不是跨平台的?

首先理解一下跨平台的含义:不依赖与操作系统,也不依赖硬件环境。

java是一次编译,到处运行,像java,flash这些可以理解为这样,因为他们运行在虚拟机上jvm的。而这个虚拟机,你也可以理解成为一个微型的操作系统。在不同的系统中有不同的jvm可以和他们进行一起安装,所以相应java字节码便可以跟着在任何平台上运行。 只要JVM自身的代码能在相应平台上运行,即JVM可行,则JAVA的程序员就可以不用考虑所写的程序要在哪里运行,反正都是在虚拟机上运行,然后变成相应平台的机器语言,而这个转变并不是程序员应该关心的。

所以java一次编译之后得到的运行程序也就有了跨平台的效果。c++也可以跨平台,只不过这种跨平台是源代码级别的,C/C++中跨平台的基础就是判断当前是什么操作系统,然后各个操作系统编写相应代码,从而实现程序的跨平台。c语言在Windows上编译的文件,放到Linux系统上运行,可能就有不兼容问题。c++的跨平台不如java,其实c++主要追求的目标是:实用+通用+性能。