一、字节码
1、Java编译器输出的不是可执行代码,而是字节码。这些字节码由Java虚拟机执行。
2、将Java编译成字节码,使其更容易在各种环境中运行,因为只需要针对每种平台实现Java虚拟机就可以了。对于不同平台,实现的JVM有所不同,但它们都能理解相同的Java字节码,从而无需针对不同平台编写不同版本的程序。实现Java的跨平台特性和可移植程序。
3、Java是将程序编译成字节码,然后由虚拟机解释执行,理论上会比直接将程序编译成可执行代码速度慢。但是由于字节码已经被高度优化,其能适应虚拟机的执行速度,所以并没有影响Java程序执行的速度。
3、HotSpot为字节码提供了即时编译器JIT,可以在程序执行期间,根据要求一部分一部分的将字节码实时编译为可执行代码,而不是一次性将全部字节码编译为可执行代码。而且,JIT只编译有益的字节码,剩余字节码仍然是进行解释执行。JVM对Java程序进行
编译+解释结合的执行,可以显著提高性能。
二、Java的关键特性
简单性、安全性、可移植性、面向对象、健壮性、多线程、解释执行、高性能、分布式、动态性、体系结构中立、多线程。
1、健壮性:指程序能以可预见的方式可靠的执行。Java在编译时检查代码。
2、体系结构中立:编写一次,无论何时、何地都能永远运行。不受平台系统升级等影响。