zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    活动投票
    人品问题
    网站记录
    浅谈底层常数优化及编译器优化
    透过用户思维谈程序员的进阶之路
    我们为什么要学习?写给我的组员们
    原来你是这样的Websocket--抓包分析
    我看依赖注入
    使用反射+策略模式代替项目中大量的switch case判断
    JavaScript 词法作用域不完全指北
  • 原文地址:https://www.cnblogs.com/sunyanblog/p/12753147.html
Copyright © 2011-2022 走看看