java语言的跨平台
1:Java语言比较特殊,由Java语言编写需要经过编译,但这个编译步骤并不会生成特定的平台机器码,而是生成一个钟与平台无关的字节码.class文件,当然,这种字节码不是可执行的,必须使用Java解释器来执行,因此也可以认为Java语言既是编译型语言,也是解释型语言Java程序的执行过程必须经过先编译,后解释着两个步骤
Java语言里负责解释执行字节码文件的是Java虚拟机,JVM是可运行Java字节码文件的虚拟计算机,所有平台上的JVM向编译器提供相同的编程接口,而编译器只需要面向虚拟机,生成虚拟机能够理解的代码,然后虚拟机来解释执行,在一些虚拟机的实现中,还会将虚拟机代码转换成相同的机器码执行,从而提高执行效率
1: 因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。
2:因为它有虚拟机(JVM),JAVA程序不是直接在电脑上运行的,是在虚拟机上进行的,每个系统平台都是有自己的虚拟机(JVM),所以JAVA语言能跨平台。 java代码不是直接运行在CPU上,而是运行在java虚机(简称JVM)上的。
3: java是先把java文件编译成二进制字节码的class文件,jvm就解释执行class文件。 就是因为java是运行在jvm上的,所以它的代码就能不经修改,就能在不同平台的jvm上运行(在UNIX用UNIX的jvm,在linux上用linux的jvm,在windows上用windows的jvm) 假如用windows移植到UNIX,只需把java文件是UNIX的jvm上编译成class文件,然后用jvm运行就可以了.