java先编译成字节码(中间码),为什么需要这个中间码呢?
创新互联建站专注于白银网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供白银营销型网站建设,白银网站制作、白银网页设计、白银网站官网定制、小程序制作服务,打造白银网络公司原创品牌,更为您提供白银网站排名全网营销落地服务。
如果java直接编译成系统能识的二进制码,可能一个标识在windows下是1100,而linux下是1001,这样java在windows下编译后无法在linux运行。
所以java先编译成字节码(中间码),由JVM(java虚拟机来解释执行),而这个JVM对于主流的操作系统都有相应的版本,目的就是将 统一的中间码 编译成对应操作系统识的二进制码,然后执行。
所以不论你在什么系统中编译的java,得到的都是统一的字节码(中间码)
在windows中需要有windows版本的JVM来执行,要是到了linux下,只要下载linux版本的JVM来执行就可以了
这就是java的跨平台,可移植性
因为java有一个JVM(Java Virtual Machine)java虚拟机,源程序*.java被编译成字节码文件,字节码是与平台无关的,是面向jvm编写的,而jvm又有自己的一套指令系统,在不同的平台上jvm的指令也是不一样的,也就是说不同操作平台有自己的jvm但是jvm向上的字节码接口是与平台无关的,jvm接口向下是与硬件有关的,jvm是个中间件,这样只要有字节码和jvm,不管在任何平台都可以运行java程序。全靠的是jvm虚拟机
希望对你能有所帮助。
java用编译器编译成字节码,字节码用解释器运行,同一字节码可以在不同的操作系统下被不同的解释器运行,从而实现Java的跨平台性也就可移植性.因为字节码,即class文件是按规定标准排列的二进制文件,所以不同操作系统的java编译器都会编译出一致的字节码文件