先是参考了这篇说的不怎么详细的文章《Java的JIT机制》(Link)

JIT是just in time,即时编译技术。使用该技术,能够加速java程序的执行速度。

通常javac将程序源代码编译,转换成java字节码,JVM通过解释字节码将其翻译成对应的机器指令,逐条读入,逐条解释翻译。很显然,经过解释执行,其执行速度必然会比可执行的二进制字节码程序慢。

为了提高执行速度,引入了JIT技术。在运行时JIT会把翻译过的机器码保存起来,已备下次使用,因此从理论上来说,采用该JIT技术可以,可以接近以前纯编译技术。

当JIT编译启用时(默认是启用的),JVM读入.class文件解释后,将其发给JIT编译器。JIT编译器将字节码编译成本机机器代码.

同样也发现了个问题,由于JIT对每条字节码都进行编译,造成了编译过程负担过重。为了避免这种情况,当前的JIT只对经常执行的字节码进行编译,如循环等。
需要说明的是,JIT并不总是奏效,不能期望JIT一定能够加速你代码执行的速度,更糟糕的是她有可能降低代码的执行速度。这取决于你的代码结构,当然很多情况下我们还是能够如愿以偿的。

另有这两篇文章讲的比较深入,可以看一下:

http://blog.csdn.net/ns_code/article/details/18009455

http://www.ibm.com/developerworks/cn/java/j-lo-just-in-time/

【Todo】Java的JIT机制相关推荐

  1. Jvm 系列(十):Java 即时编译器JIT机制以及编译优化

    在部分的商用虚拟机中,Java 程序最初是通过解释器( Interpreter )进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为"热点代码" ...

  2. 深入理解java虚拟机(十三) Java 即时编译器JIT机制以及编译优化

    在部分的商用虚拟机中,Java 程序最初是通过解释器( Interpreter )进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为 热点代码 .为了提高热点代码的 ...

  3. 关于Java的JIT(即时编译器)知识整理

    文章目录 前言 一.JIT(即时编译器) 1.1 解释执行和编译执行的区别 1.2 Java代码编译过程 1.3 JIT是什么 二.HotSpot是什么 2.1 说JIT比解释快,其实说的是" ...

  4. JAVA垃圾回收机制-史上最容易理解看这一篇就够了

    目录 1. JDK构成 2. JAVA执行过程 2.1 第一步:编译阶段 2.2 第二步:运行阶段 3. JAVA内存管理 3.1 JAVA的内存模型 3.2 JVM1.7和1.8区别 3.3 JAV ...

  5. java的Serialization 机制

    基本使用方法                Serialization是指把类或者基本的数据类型持久化(persistence)到数据流(Stream)中,包括文件.字节流.网络数据流.        ...

  6. 《Java程序设计》实验报告——Java的多线程机制

    浙江理工大学 <Java程序设计>  实验报告  20 19-20 20学年第 1学期      学  院 信息学院 班  级 计算机科学与技术18(3) 姓  名 申屠志刚 学  号 2 ...

  7. java xml 反射_Java 读取XML文件以及Java 的反射机制实现

    Java 读取XML文件以及Java 的反射机制实现 代码部分 import java.io.File; import javax.xml.parsers.DocumentBuilder; impor ...

  8. 深入了解Java的SPI机制

    导语   SPI的全名叫做Service Provider Interface,在java.util.ServiceLoader的文档中有详细的介绍,下面就来通过简单的例子实现SPI深入了解   我们 ...

  9. 【java】SPI机制详解

    1.概述 以前的文章:[SPI]java基础之SPI框架实现 转载:Java常用机制 - SPI机制详解 PI(Service Provider Interface),是JDK内置的一种 服务提供发现 ...

最新文章

  1. ospf的四种网络类型
  2. 阿里离职员工吐槽加班太疯狂,所有的高薪都是加班加出来的!被榨干到一丝精力都不剩!婚姻不保!...
  3. 干货丨关于机器学习那些你不知道的“民间智慧”
  4. [flask实践] 解决mysql数据库不支持中文的问题
  5. Linux守护进程简介
  6. vue中的浏览量_vue中前进刷新、后退缓存用户浏览数据和浏览位置的实践
  7. Python项目实践:天天向上的力量
  8. 打算升级到 Monterey?我们为你准备了一份 macOS 安全升级指南
  9. java虚拟机的数据_Java虚拟机运行时数据区域
  10. MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
  11. 微信 语音识别_微信语音识别_微信语音识别api - 云+社区 - 腾讯云
  12. [附源码]java毕业设计逸尘房屋销售管理系统
  13. asp.net 中 使用ajax 和浏览器的关系
  14. 网工浓缩笔记以及考点(第四章 无线通信网)
  15. 报表工具不可或缺的数据填报功能
  16. mac 打字卡顿的解决方法
  17. 计算机组成原理 | 第八章《计算机的外围设备》、第九章《输入/输出系统》 学习笔记
  18. Scrapy爬取网页并保存到数据库中
  19. 解决方案:IDEA没有Java Enterprise选项的问题
  20. 华为发布鸿蒙系统有啥用,华为鸿蒙发布在即,能否成为第三大操作系统?

热门文章

  1. 人工智能基础-算法工程师为什么要懂线性代数?
  2. 工作上996,生活上669,并不是什么难事儿!
  3. 业界丨2018,人工智能革命走向风口浪尖
  4. 听说你用JavaScript写代码?本文是你的机器学习指南
  5. 深度学习和普通机器学习之间有何区别?
  6. 南洋理工75页最新「深度学习对话系统」大综述论文,最全面概述深度学习对话技术进展...
  7. 加大基础研究投入 给科技创新注入“强心剂”
  8. “万物就只是5万亿个参数”,AI模型GPT-3让人怀疑人生
  9. 前途无量的MEMS传感器
  10. 干货|六维力和力矩传感器的技术与应用