net 跨平台也是一句谎言 以前很热炒跨平台主要是由于硅谷挑战微软霸主地位的热情但是冷静下来后跨平台往往不是那么一回事。假设你有个软件所谓的跨平台你只需要为第二个平台上重新编译一次就行了这样很难么c语言的编译器几乎是所有新平台都有的。因此从这点上看c语言的程序比其他任何语言更加容易跨平台。当然java这类语言也是有优势的1。一个很大的类库。应用程序之所以难以跨平台在于直接调用了特定平台的接口而一个巨大的类库就能极大地减少应用程序对平台的依赖。2。捆绑编译器。用户不需要受制于厂家自己就能将程序在新平台上编译运行。除了牛B轰轰的linux估计也没有系统捆绑c/c的编译器而且许多新平台都无法支持复杂的c/c编译器在上面直接运行。有专家说java不是跨平台java就是平台这很好的定义了java的特点。有了java你只需要等待java平台在新平台上移植。这还不错吧只是java不是一个平台而是多个平台。你需要在这个java平台移植到另一个java平台。所以可怜的程序员还是逃不出移植的命运第二个主题java是不是注定低效率java的设计机制首先产生一个中间码第二部编译为本地机器码。这个机制有很大的缺点。中间码是基于一个虚拟机器。源代码是最高层的理论上从源代码开始直接编译成本地码能提供最大优化的。而中间码只能是转译成本地码效率上难免受到损耗。根据虚拟机器所设定的体系结构的特点和本地机器的差异的多少效率会有不少的变化。而实际上java是基于堆栈机器来设计这和我们常见的基于寄存器的本地机器是差异比较大的。总体来说这是一种虚拟机的设计思路。