长沙java培训
达内长沙芙蓉路中心

18487146383

热门课程

JDK, JRE 和 JVM 的区别

  • 时间:2016-09-02
  • 发布:极客学院Wiki
  • 来源:简书

JDK, JRE 和 JVM 是 Java 编程语言的核心概念。尽管它们看起来差不多,作为程序员我们也不怎么关心这些概念,但是它们是不同的针对特定目的的产品。这是一道常见的 Java 面试题,这篇文章中达内长沙java培训会一一解释这些概念并给出它们之间的区别。

Java 开发工具包 (JDK)

Java 开发工具包是 Java 环境的核心组件,并提供编译、调试和运行一个 Java 程序所需的所有工具,可执行文件和二进制文件。JDK 是一个平台特定的软件,有针对 Windows,Mac 和 Unix 系统的不同的安装包。可以说 JDK 是 JRE 的超集,它包含了 JRE 的 Java 编译器,调试器和核心类。目前 JDK 的版本号是 1.7,也被称为 Java 7。

Java 虚拟机(JVM)

JVM 是 Java 编程语言的核心。当我们运行一个程序时,JVM 负责将字节码转换为特定机器代码。JVM 也是平台特定的,并提供核心的 Java 方法,例如内存管理、垃圾回收和安全机制等。JVM 是可定制化的,我们可以通过 Java 选项(java options)定制它,比如配置 JVM 内存的上下界。JVM 之所以被称为虚拟的是因为它提供了一个不依赖于底层操作系统和机器硬件的接口。这种独立于硬件和操作系统的特性正是 Java 程序可以一次编写多处执行的原因。

Java 运行时环境(JRE)

JRE 是 JVM 的实施实现,它提供了运行 Java 程序的平台。JRE 包含了 JVM、Java 二进制文件和其它成功执行程序的类文件。JRE 不包含任何像 Java 编译器、调试器之类的开发工具。如果你只是想要执行 Java 程序,你只需安装 JRE 即可,没有安装 JDK 的必要。

JDK, JRE 和 JVM 的区别

JDK 是用于开发的而 JRE 是用于运行 Java 程序的。

JDK 和 JRE 都包含了 JVM,从而使得我们可以运行 Java 程序。

JVM 是 Java 编程语言的核心并且具有平台独立性。

即时编译器(JIT)

有时我们会听到 JIT 这个概念,并说它是 JVM 的一部分,这让我们很困惑。JIT 是 JVM 的一部分,它可以在同一时间编译类似的字节码来优化将字节码转换为机器特定语言的过程相似的字节码,从而将优化字节码转换为机器特定语言的过程,这样减少转换过程所需要花费的时间。

上一篇:Java 和 C++ 有何区别(下)
下一篇:Java 语言的优点

达内长沙Java培训教你阅读GC日志

spring注入配置文件属性到java类

Java中Vector和ArrayList的区别

达内长沙Java培训详解volatile关键字

选择城市和中心
贵州省

广西省

海南省

扫一扫

了解更多干货