为什么java可以跨平台,JAVA语言为什么能跨平台
大家好,今天小编来为大家解答以下的问题,关于为什么java可以跨平台,JAVA语言为什么能跨平台这个很多人还不知道,现在让我们一起来看看吧!
为什么Java可以跨平台呢为什么,什么是虚拟机阿
上面的解释不完全正确。
Java是一种先编译后解释的语言。javac命令可以将后缀名为.java的源文件编译成后缀名为.class的中间代码文件,注意这里不是汇编代码也不是机器代码,而是sun公司专为java开发的中间语言,虚拟机就是解析执行这种语言的虚拟CPU,对比物理执行机器语言。虚拟机跑在不同的软硬环境上,虚拟机负责将中间语言解析成机器语言或汇编语言交给CPU执行,它将各种不同的设备封装成统一的API,我们编的程序就能够在任何平台上无需重新编译便可执行了
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虚拟机能跨平台。
.NET之所以能跨语言,就简单的说吧
任何代码在最终要变成机器语言,所以
对于机器来说无论你用才C#
还是VB.NET
最后的意思表达都是一样的,
只不过机器在中做了翻译的过程;
中间有N
多专有名词
反正都是通过.net
Framework
所谓的虚拟机。
JAVA
也是这套机制
只不过。NET
有MSIL
好象就是微软的公共语言什么的
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”更准确的理解是,“一次编译,到处装虚拟机,所以到处运行”。
整个流程如下图所示。
希望对您有所帮助!~
关于为什么java可以跨平台到此分享完毕,希望能帮助到您。