初学java,看了很多资料,一直对java跨平台原理这个概念很模糊,本人意见是由于java虚拟机的存在,但有些地方始终琢磨不透,前辈们能给个详细点的解释吗?谢谢!!

解决方案 »

  1.   

    这样类比。
    你的电脑是5v的,在中国用220v的变压器。
    在美国用110v的变压器。但对于你的电脑来说它是不用管你外电是多少,他只要5v的电。你的java基本的java运用通过jvm的变换才到具体系统运行。jvm象一个变压器隔离了操作系统的变化。当然win32下你要用win32的jvm,linux下你要用linux的jvm。
      

  2.   

    这个跟计算机原理差不多,处理器能执行的只能是二进制代码也就是.exe文件,都是010101010,java的跨平台就是因为,java有了自己是虚拟机就能够解释执行.class的文件。所以说,无论是在哪个平台上,只要有java虚拟机,遇到的.class就能就能够解释执行
      

  3.   

    .java--->.class----->执行
               |
             虚拟机
      

  4.   

    java跨平台特性不是说在windows下的编的,
    java程序就一定能在linux下编译运行,
    相反,高手能让非跨平台语言一处编写到处运行,
    菜鸟即使用跨平台语言也编不出跨平台的程序来,
    所以,个人觉得java跨平台特性并没有什么好吹嘘的!
      

  5.   

    何谓跨平台?我的理解就是不同的OS,不同的硬件环境,不同的web服务器。
    结合java程序的执行过程:针对不同平台采用通用的java编译器将java源程序编译成字节码文件,然后由JVM对字节码文件解释执行。关键就是在把.class文件解释执行成为机器识别的机器码这一步,正是由于JVM的存在,才有了java 的跨平台?还想问一下,不同平台,JVM是一样 的吗?
      

  6.   

    还想问一下,不同平台,JVM是一样 的吗?实现的细节应该不一样!
      

  7.   

    一句话,java解释器能将字节码译成适用于不同平台环境的机器码,显然对于不同的平台,运行时环境肯定是不一样的