Java代码是怎样运行的?

之所以要在虚拟机中运行,是因为它提供了可移植性。一旦Java代码被编译为java字节码,便可以在不同平台的Java虚拟机上实现运行。此外,虚拟机还提供了一个代码托管的环境,代替我们处理部分冗长而且容易出错的事务,例如内存管理。

Java虚拟机将运行时内存划分为五个部分,分别为方法区,堆,PC寄存器,Java方法栈和本地方法栈。java程序编译而成的class文件,需要先加载至方法区中,方能在Java虚拟机中运行。

为了提高效率,标准JDK中的HotSpot虚拟机采用的是一种混合执行的策略。它会解释执行Java字节码,然后会将其中反复执行的热点代码,以方法为单位进行即时编译,翻译成机器码后直接运行在底层硬件之上。

HotSpot装载了多个不同的即时编译器,以便在编译时间和生成代码的执行效率之间做取舍。

猜你喜欢

转载自blog.csdn.net/zpwggi123/article/details/83181872
今日推荐