/*

JRE、JDK、JVM 及 JIT

JRE

Java Runtime Environment 的简称,Java 运行环境,为 Java 的运行提供了所需环境。 具体来说 JDK 其实包含了 JRE,同时还包含了编译 Java 源码的编译器 Javac,还包含了很多 Java 程序调试和分析的工具。

JDK

Java Development Kit 的简称,Java 开发工具包,提供了 Java 的开发环境和运行环境。

简单来说:如果你需要运行 Java 程序,只需安装 JRE 就可以了,如果你需要编写 Java 程序,需要安装 JDK。

JVM

Java virtual machine, Java 虚拟机,它的责任是运行 Java 应用。 Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够"一次编译,到处运行"的原因。

JIT

Just In Time compilation,即时编译, JIT技术是JVM中最重要的核心模块之一 。即时编译器是种特殊的编译器,它通过有效的把字节码变成机器码来提高JVM的效率。 当代码执行的次数超过一定的阈值时,会将 Java 字节码转换为本地代码。

JVM之JIT

Just in time编译,也叫做运行时编译,不同于 C / C++ 语言直接被翻译成机器指令,javac把java的源文件翻译成了class文件,而class文件中全都是Java字节码。那么,JVM在加载了这些class文件以后,针对这些字节码,逐条取出,逐条执行,这种方法就是解释执行。

还有一种,就是把这些Java字节码重新编译优化,生成机器码,让CPU直接执行。这样编出来的代码效率会更高。通常,我们不必把所有的Java方法都编译成机器码,只需要把调用最频繁,占据CPU时间最长的方法找出来将其编译成机器码。这种调用最频繁的Java方法就是我们常说的热点方法(Hotspot,说不定这个虚拟机的名字就是从这里来的)。

这种在运行时按需编译的方式就是Just In Time。

posted @ 2020-04-22 16:48  Enthusiast  阅读(179)  评论(0编辑  收藏  举报