如果要使每一种语言都实现跨平台, 就必须像JAVA那样为每一个不同的平台实现一个虚拟机,
不仅运行效率相对降低, 而且成本也比较高.

解决方案 »

  1.   

    所以java才这么慢,有所得必有所失啊.
      

  2.   

    java也不算很慢吧?随然它比c慢对了将近20倍,不过速度也已经超过交互式gui和基于网络应用的速度需求了呀。况且在需要高性能的时候:java in time:把java code 编译成cpu的机器码,速度几乎和c&c++差不多呢。:)
      

  3.   

    java的系统是由ansic写的,服从posix规范。posix是什么呢?还烦劳帮助哦。
      

  4.   

        补充一点,据说IBM要开发java芯片,其实就是java语言假想机器的实物化。
        另外,不用对每一种语言单独写虚拟机,只要实现一种对中间假想机器的模拟器就可以执行所有编译器输出的代码了。就象红白机模拟器可以执行游戏,而不管游戏是用什么语言编的。
      

  5.   

    posix, Portable Operating System Interface。
    C 与 Java 非常大的区别是,C 只是语言的语法定义,而 Java 实际上是对一个系统框架的定义。例如网络协议,Java 中你是直接使用 java.net 包就可以了,而 C 则与你运行的平台有关,根本无法直接移植。
      

  6.   

    同意simoncn的看法。
    Java的跨平台仅仅是字节码和虚拟机间的接口是全球一致的,
    而虚拟机和实际操作系统间的接口却是各不相同的,
    也就是说,用Java写的程序可跨平台(它的平台并不是操作系统,而是虚拟机),
    但虚拟机本身却是各不相同,无法跨平台的。
    因此定义世界统一的虚拟机器是不可能的,只能定义世界统一的字节码。
      

  7.   

    定义世界统一的虚拟机器并不是实现统一的虚拟机,定义是统一的,实现是各平台不同的,就象java虚拟机。只是我说的虚拟机是面向所有编译器的。
      

  8.   

        为了使同一个程序在所有不同的UNIX系统上都能运行,IEEE拟定了一个UNIX标准,称作POSIX,该标准现在被大多数UNIX系统支持。POSIX定义了相互兼容的UNIX系统必须支持的一个最小系统调用接口,实际上,一些其它操作系统现在也支持POSIX接口。既然java支持POSIX标准,那么java虚拟机可以看作一台UNIX机器。
      

  9.   

    是呀,正因为有了虚拟机这一中间层,才慢下来;不过,感觉在内嵌网页方面,还是java小应用程序爽,微软的ActiveX不怎么行,且需注册,大家觉得呢?