① java跨平台原理,其他语言为什么不可以
C/C++语言都直接编译成针对特定平台机器码。如果要跨平台,需要使用相应的编译器重新编译。
Java源程序(.java)要先编译成与平台无关的字节码文件(.class),然后字节码文件再解释成机器码运行。解释是通过Java虚拟机来执行的。
字节码文件不面向任何具体平台,只面向虚拟机。
Java虚拟机是可运行Java字节码文件的虚拟计算机。不同平台的虚拟机是不同的,但它们都提供了相同的接口。
Java语言具有一次编译,到处运行的特点。就是说编译后的.class可以跨平台运行,前提是该平台具有相应的Java虚拟机。但是性能比C/C++要低。
② java的跨平台的含义是什么为什么java可以跨平台
首先,理解平台的含义是什么..平台的意思.个人感觉就是指操作系统,还有一层意思就是运行不同操作系统的不同的硬件设备;
也就是说,某一种代码编译后,既可以在a操作系统下运行,也可以在b操作系统下运行...或者是在c设备上运行.
那么除了java以外还有什么跨平台的语言么?当然有啊,python(但是能力有限,只能不能跨位,就是32不能跨到64,同时也不能跨版本),scala..都可以..但是相对于java,它的跨平台性能就要差一点..(其实java跨平台也不是那么完美,很多时候还是有很多陷阱)
至于java如何实现的跨平台,那就跟java这个语言的机制有关系了.java代码被javac编译成java中间码(就是.class文件)JIT编译器再把java中间码编译成nativecode,最终在芯片上执行..能做到跨平台,就在编译nativecode这步做文章...不同的jvm通过不同的技术,将java中间码按照相同的规范编译成高效的,对应不同平台的原生机器码,从而实现了同一中间码在不同设备上的同样执行结果..以此实现的java跨平台..
2017年8月16日 12:40:34
③ java为什么可以跨平台执行
因为java程序是用java虚拟机(JVM)执行的,不论是用什么平台开发的java代码,最终都会被转换成只被JVM识别的代码。
所以只要下载各个平台的java虚拟机就可以实现代码的跨平台运行。
④ JAVA语言为什么能跨平台
所谓的跨平台就是JAVA写的一份代码可以在任意的操作系统平台上运行。
为什么跨平台会成为一个问题呢?因为每一个操作系统平台支持不同的指令集我们所写的代码经过编译之后只能适用于一个平台,换一个平台就不支持了。而JAVA完美的解决了这个问题。
Java的一大特色就是“write once, run anywhere”即“一次编译,到处运行”。就是说你不用专门为每个平台写一份代码,你写的Java程序在任何平台都能跑起来。
它的实现原理是在系统层面上又增加了一层虚拟机(Java Virtual Machine,简称JVM),且为每个平台都定制了对应的虚拟机。然后Java程序是在虚拟机上跑的,因此平台无关。
Java的运行流程是:程序员写了源代码(Source Code,.java后缀,跨平台),然后经过编译器编译成字节码(Byte Code,.class后缀,二进制文件),字节码是所有虚拟机都能理解的中间文件。然后交给虚拟机(每个平台都有对应的虚拟机)去运行。
所以对“write once, run anywhere”更准确的理解是,“一次编译,到处装虚拟机,所以到处运行”。
整个流程如下图所示。
希望对您有所帮助!~