使用Java语言编写应用程序最大的优势在于“一次编译,到处运行”,然而这并非说全部的Java程序都具备Java跨平台的特性,spa
事实上,至关一部分的Java程序是不能在别的操做系统上正确运行的。操作系统
Java字节码的两种执行方式:code
1.即时编译方式:解释器先将字节码编译成机器码,而后再执行该机器码。xml
2.解释执行方式:解释器经过解释一段执行一段的方式来完成Java字节码程序的所有操做。虚拟机
Java程序执行和C++程序执行的对比分析:编译
Java源代码就比如C++源代码软件
Java源代码编译后的字节码就比如C++源代码编译后的80x86机器码(二进制程序文件)硬件
JVM虚拟机比如80X86计算机系统二进制
Java解释器比如80X86的CPU程序
真正的80X86CPU上运行的是机器码
而在Java解释器上运行的是字节码
能够把Java解释器想象成运行了“Java字节码”的“CPU”,
但该“CPU”不是经过硬件实现的,而是用软件实现的。
Java解释器实际上就是特定的平台下的一个应用程序。
只要特定平台实现了Java解释器程序,Java字节码就能经过解释器程序在该平台下运行,这是Java跨平台的根本。
固然,并非在全部的平台下都有相应Java解释器程序,这也是Java并不能在全部的平台下都能运行的缘由,它只能在已经实现了Java解释器程序的平台下运行。
机器码(machine code)是一种机器指令的集合,有时也被称为原生码(Native Code),是计算机的CPU可直接解读的数据。