先是参考了这篇说的不怎么详细的文章《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. 使用 trait 时报PHP Parse error: syntax error, unexpected 'use' (T_USE) 这个错误
  2. Android:Socket客户端开发,Android 的Socket客户端优化,Android非UI线程修改控件程序崩溃的问题
  3. KIS科目初始数据录入
  4. js获取服务器响应头信息,请问,js中请求头信息和返回头信息的方法
  5. ATL的GUI程序设计(2)
  6. 瞬间之美:Web 界面设计如何让用户心动
  7. 【Python】ModuleNotFoundError: No module named 'pandas.io.data'
  8. python画散点图-从零开始学Python【15】--matplotlib(散点图)
  9. [转载] 用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
  10. 由于项目需要 接触使用特别好 亲测使用 GoEasy小程序即时通讯源码是一个基于GoEasy提供的websocket通讯服务,实现的小程序即时通讯,
  11. centos 删除服务器文件夹,centos彻底删除文件夹、文件命令
  12. iReport报表Detail设置自适应高度
  13. 2012年秋季,斯皮维大厅音乐会的亮点
  14. 已知华氏温度f c语言,编程题:已知两种温度的换算公式C=(5/9)(F-32),试编写一个程序输入华氏度F,输出摄氏度。...
  15. Gsensor的驱动流程 -- 基于IIC
  16. Java 同步监视器中的 wait() 和 notify() 方法的具体实现
  17. C++华为+阿里+鹅厂面经大盘点-如果换做你能成功吗?
  18. Chrome浏览器更新
  19. 售前和产品经理有何区别?
  20. 摄影教室:数码摄影区域曝光法实用教程

热门文章

  1. 《亮剑》,我看了不下五遍。
  2. 动手写一个简单版的谷歌TPU
  3. 网络表述学习经典论文——DeepWalk
  4. SAP MM '独立/集中'等于1的MTS物料MRP运行后合并需求触发PR
  5. 什麽样的资料集不适合用深度学习?
  6. 行业洞见 | 一文了解自动驾驶汽车
  7. 计算的极限(零):逻辑与图灵机
  8. 张亚勤:新范式、新架构和新模态突破传统算力,推动物理世界走向数字化
  9. 制胜人工智能时代——企业人工智能应用现状分析(第三版)
  10. 如何评价马云和马斯克在世界人工智能大会的对话?