java 为什么能跨操作系统平台运行(简述JAVA 的工作机制。为什么它能实现跨平台)
很多朋友对于java 为什么能跨操作系统平台运行和简述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”更准确的理解是,“一次编译,到处装虚拟机,所以到处运行”。
整个流程如下图所示。
希望对您有所帮助!~
为什么Java可以跨平台呢为什么,什么是虚拟机阿
一般我们所谓的执行档
内容是一堆人类看不懂得机械码是拿来给机器看的
因为他要直接指挥计算机去做事情所以得写成机器可以执行的语言
问题是
每一台机器有自己的语言每一个平台也有自己的语言
所以在不同的机器上我们要用不同的执行档
那 Java怎么达成一个程序跨平台执行的呢~~
其实, Java是在各种平台之上建立起他自己的平台
也就是所谓的 JVM(Java虚拟机器)
再用 JVM来执行他的类别档
因为不管在甚么平台上实际执行类别档的都是 JVM
所以就可以达到跨平台的目的
123456
类别档程式
______________________________|_________________________________
||||
Windows95/98版JVM WindowsNT系列JVM Linux版JVM Unix版JVM
||||
Windows95/98 WindowsNT/2000 Linux Unix
所以要执行 Java的程序就必须先在机器上启动 JVM才行
而启动 JVM的程序就是所谓的 JRE
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
1.为什么要使用Java虚拟机
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
2.谁需要了解Java虚拟机
Java虚拟机是Java语言底层实现的基础,对Java语言感兴趣的人都应对Java虚拟机有个大概的了解。这有助于理解Java语言的一些性质,也有助于使用Java语言。对于要在特定平台上实现Java虚拟机的软件人员,Java语言的编译器作者以及要用硬件芯片实现Java虚拟机的人来说,则必须深刻理解Java虚拟机的规范。另外,如果你想扩展Java语言,或是把其它语言编译成Java语言的字节码,你也需要深入地了解Java虚拟机。
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完美的解决了这个问题。
Java的一大特色就是“write once, run anywhere”即“一次编译,到处运行”。就是说你不用专门为每个平台写一份代码,你写的Java程序在任何平台都能跑起来。
它的实现原理是在系统层面上又增加了一层虚拟机(Java Virtual Machine,简称JVM),且为每个平台都定制了对应的虚拟机。然后Java程序是在虚拟机上跑的,因此平台无关。
Java的运行流程是:程序员写了源代码(Source Code,.java后缀,跨平台),然后经过编译器编译成字节码(Byte Code,.class后缀,二进制文件),字节码是所有虚拟机都能理解的中间文件。然后交给虚拟机(每个平台都有对应的虚拟机)去运行。
所以对“write once, run anywhere”更准确的理解是,“一次编译,到处装虚拟机,所以到处运行”。
整个流程如下图所示。
希望对您有所帮助!~
OK,关于java 为什么能跨操作系统平台运行和简述JAVA 的工作机制。为什么它能实现跨平台的内容到此结束了,希望对大家有所帮助。