JVM中的JIT


介绍Java虚拟机的文章或者书籍总会提到Java虚拟机中的JIT编译器,可是JIT编译器到底是什么?为什么需要JIT编译呢?

JIT编译器,是Just In Time编译的意思,又称即时编译。
 
Java程序是先从源代码编译到字节码,然后由Java虚拟机来解释执行字节码。当Java虚拟机在解释执行一个Java程序的字节码的时候,正常情况下Java虚拟机是解释一句执行一句,直到程序运行完毕。但是,很多程序中都存在一些”热点“区域,这些区域的代码会被反复调用执行,这样同一段代码就会被Java虚拟机反复的解释,这就导致了Java虚拟机执行效率的低下。为了应对这种情况,Java虚拟机就在执行Java字节码的过程中把检测到的反复执行的”热点“区域代码给编译成机器码,让后边对这段代码的调用可以不用再解释,提高执行效率,这个编译过程就叫JIT编译,因为编译是在字节码解释执行的过程中完成的,所以被称即时编译。
 
Java虚拟机在执行Java字节码的过程中不会对所有的字节码进行即时编译,因为只执行一次的字节码没必要编译成机器码,直接解释执行比即时编译还快。 

最新文章

  1. 规范和封装jdbc程序代码
  2. openstack常规操作命令梳理
  3. Web工程与RMI工程进行联调
  4. Nginx使用手册目录
  5. Chrome plug-in 和Extension
  6. restful php
  7. vi 编辑器的使用
  8. 【二进制拆分多重背包】【HDU1059】【Dividing】
  9. 測试之路3——对照XML文件2
  10. Android自定义安全键盘
  11. [BZOJ1007] [HNOI2008] 水平可见直线 (凸包)
  12. 寒假训练——搜索 K - Cycle
  13. Linux read line
  14. 一个HttpClient使用Windows认证请求WCF服务的例子
  15. (未完成...)Python3网络爬虫(2):利用urllib.urlopen向有道翻译发送数据并获得翻译结果
  16. yum-本地源配置(CentOS7)
  17. 俩表之间的添加Sql
  18. OpenCV-跟我一起学数字图像处理之直方图均衡化
  19. PAT 1127 ZigZagging on a Tree[难]
  20. [翻译] SlideInView

热门文章

  1. 【python】python内存管理摘要
  2. 转一篇pgpool配置
  3. => 应用在js回调函数中
  4. 服务器与客户端数据交互 (json)
  5. Mac 及 Xcode快捷键
  6. 转载论文关于fir滤波器的fpga实现
  7. 2.2 web工程的目录结构
  8. weblogic控制台的启动与禁用
  9. ①HttpURLConnection通过报文提交
  10. [转]javascript中基本类型和引用类型的区别分析