jdk和jre和jvm区别

The difference between JDK and JRE and JVM is one of the popular interview questions. You might also be asked to explain JDK vs JRE vs JVM.

JDK与JRE和JVM之间的区别是流行的面试问题之一。 可能还会要求您解释JDK,JRE和JVM。

JDK与JRE和JVM之间的区别 (Difference between JDK and JRE and JVM)

JDK, JRE, and JVM are core concepts of Java programming language. Although they all look similar and as a programmer, we don’t care about these concepts a lot, but they are different and meant for specific purposes. It’s one of the common java interview questions and this article will explain each one of these and what is the difference between them.

JDK,JRE和JVM是Java编程语言的核心概念。 尽管它们看上去都是相似的,并且作为程序员,但是我们并不太在乎这些概念,但是它们是不同的,并且针对特定目的。 这是常见的Java面试问题之一 ,本文将解释每个问题以及它们之间的区别。

JDK (JDK)

Java Development Kit is the core component of Java Environment and provides all the tools, executables and binaries required to compile, debug and execute a Java Program. JDK is a platform-specific software and that’s why we have separate installers for Windows, Mac, and Unix systems. We can say that JDK is the superset of JRE since it contains JRE with Java compiler, debugger, and core classes. The current version of JDK is 11 also known as Java 11.

Java Development Kit是Java Environment的核心组件,并提供编译,调试和执行Java程序所需的所有工具,可执行文件和二进制文件。 JDK是特定于平台的软件,因此我们为Windows,Mac和Unix系统提供了单独的安装程序。 可以说JDK是JRE的超集,因为它包含带有Java编译器,调试器和核心类的JRE。 JDK的当前版本为11,也称为Java 11 。

虚拟机 (JVM)

JVM is the heart of Java programming language. When we run a program, JVM is responsible for converting Byte code to the machine specific code. JVM is also platform dependent and provides core java functions like memory management, garbage collection, security etc. JVM is customizable and we can use java options to customize it, for example allocating minimum and maximum memory to JVM. JVM is called virtual because it provides an interface that does not depend on the underlying operating system and machine hardware. This independence from hardware and the operating system is what makes java program write-once-run-anywhere.

JVM是Java编程语言的核心。 当我们运行程序时,JVM负责将Byte代码转换为机器特定的代码。 JVM也是平台相关的,并提供诸如内存管理,垃圾回收,安全性等核心Java功能。JVM是可自定义的,我们可以使用java选项对其进行自定义,例如为JVM分配最小和最大内存。 JVM之所以称为虚拟的,是因为它提供的接口不依赖于底层操作系统和机器硬件。 这种与硬件和操作系统的独立性使得Java程序可以在任何地方编写一次写入。

杰瑞 (JRE)

JRE is the implementation of JVM, it provides a platform to execute java programs. JRE consists of JVM and java binaries and other classes to execute any program successfully. JRE doesn’t contain any development tools like java compiler, debugger etc. If you want to execute any java program, you should have JRE installed but we don’t need JDK for running any java program.

JRE是JVM的实现,它提供了执行Java程序的平台。 JRE由JVM和Java二进制文件以及其他类组成,可以成功执行任何程序。 JRE不包含Java编译器,调试器等任何开发工具。如果您想执行任何Java程序,则应该安装JRE,但我们不需要JDK即可运行任何Java程序。

JDK,JRE和JVM (JDK vs JRE vs JVM)

Let’s look at some of the important difference between JDK, JRE, and JVM.

让我们看一下JDK,JRE和JVM之间的一些重要区别。

  1. JDK is for development purpose whereas JRE is for running the java programs.JDK用于开发目的,而JRE用于运行Java程序。
  2. JDK and JRE both contains JVM so that we can run our java program.JDK和JRE都包含JVM,因此我们可以运行我们的java程序。
  3. JVM is the heart of java programming language and provides platform independence.JVM是Java编程语言的核心,并提供平台独立性。

即时编译器(JIT) (Just-in-time Compiler (JIT))

Sometimes we heard this term and being it a part of JVM it confuses us. JIT is part of JVM that optimizes byte code to machine specific language compilation by compiling similar byte codes at the same time, hence reducing overall time taken for the compilation of byte code to machine specific language.

有时我们听到这个术语,并且它成为JVM的一部分使我们感到困惑。 JIT是JVM的一部分,它通过同时编译相似的字节码来优化字节码以进行机器特定语言的编译,从而减少了将字节码编译为机器特定语言所需的总时间。

翻译自: https://www.journaldev.com/546/difference-jdk-vs-jre-vs-jvm

jdk和jre和jvm区别

jdk和jre和jvm区别_JDK,JRE和JVM之间的区别相关推荐

  1. SDK、JDK、JRE、JVM、JDT、CDT等之间的区别与联系

    相信大多数java初学者被这些概念搞蒙过,它们之间到底有什么区别,又有什么联系呢?下面我将一一解开大家心中的谜团. 首先,给大家解释一下这些概念: 1.SDK(Software DevelopKit, ...

  2. StringBuffer类,StringBuffer类和String的区别、String,StringBuffer,StringBuilder之间的区别

    1.概述 StringBuffer是一个线程安全的可变序列. 2.StringBuffer与String区别 (1)StringBuffer的长度和内容都可以发生改变,String却不行 (2)Str ...

  3. 验证和确认的区别_验证与确认之间的区别

    验证和确认的区别 Today we are going to cover the topic difference between Verification and Validation. 今天,我们 ...

  4. linux sudo和su区别,了解sudo和su之间的区别

    在我们之前的一篇文章中 ,我们详细讨论了"sudo"命令. 在该教程的末尾,在一个小笔记中提到另一个类似的命令"su". 那么在这篇文章中,我们将详细讨论'su ...

  5. java 对象和实例有什么区别_对象和实例之间的区别

    " 类别"一词来自" 分类"(将类别放入其中的" 类别"),现在我们都听说" 类别"就像一个蓝图,但这到底是什么意思?这 ...

  6. java vm art 2.1.0_成都汇智动力-JVM、DalvikVM和ART虚拟机之间的区别

    使用Dalvik Virtual Machine (DVM)作为其,所有安卓程序都运行在安卓系统进程里,每个进程对应着一个Dalvik虚拟机实例.他们都提供了对象生命周期管理.堆栈管理.线程管理.安全 ...

  7. c与python的区别-C++/C/JAVA/Python之间的区别?

    如果你是一位计算机方面零基础的小白,在日常工作和生活中,希望能够自己编写程序来完成一些事情.那么,比较各种语言之间的异同,实际上是为了选择适合自己的学习和使用的.下面就为大家分别介绍一下目前比较主流的 ...

  8. 框架和库的区别_框架和库之间的区别

    框架和库的区别 Developers often use the terms "library" and "framework" interchangeably ...

  9. 无监督和有监督的区别_机器学习和人工智能之间的区别

    机器学习示意图 机器学习是人工智能的一门学科,其中人工智能的应用范围更广,涵盖了与人类智能相似的主要系统.术语机器学习和人工智能的区别在于,人工智能是模仿人类智能的所有应用,智能发明的设计和综合.另一 ...

  10. python和c 的区别-C++/C/JAVA/Python之间的区别?

    如果你是一位计算机方面零基础的小白,在日常工作和生活中,希望能够自己编写程序来完成一些事情.那么,比较各种语言之间的异同,实际上是为了选择适合自己的学习和使用的.下面就为大家分别介绍一下目前比较主流的 ...

最新文章

  1. 考前自学系列·计算机组成原理·IEEE 754 单精度浮点数和真值之间的转化
  2. Machine Learning实验3】SoftMax regression
  3. QDoc C ++特定的配置变量
  4. java类的加载机制
  5. 公司只有1个测试,领导却让我同时操作1000个手机号
  6. C语言电影院售票系统
  7. AMEsim柱塞泵的建模学习
  8. 服务封装软件 nssm
  9. 西门子atch指令详解_西门子plc指令含义大全详解
  10. _ASSERTE(_CrtIsValidHeapPointer(block))
  11. idea误操作reset head导致未提交的代码丢失(修改记录清空了)
  12. 花菁染料(cas773041-79-5|cas427882-78-8|cas14134-81-7)结构图及合成路线图
  13. 建模工具:octave
  14. WLW/OLW 最佳博客写作软件
  15. 再谈SQL-to-SQL翻译器
  16. Hash Table
  17. E. Pencils and Boxes codeforces(思维+dp)
  18. git 列出远程标签_Git 标签管理
  19. erp软件和用友的区别
  20. 标题 穿越雷区 java_6届国赛java试题 4: 穿越雷区

热门文章

  1. javascript权威指南 学习笔记之变量作用域
  2. Javascript访问Cookie的四个常用方法
  3. [转载] python字符串查找的四种方法
  4. [转载] numpy.take()从数组中取指定的行或列
  5. [转载] Python中的Phyllotaxis模式| 算法植物学的一个单位
  6. [转载] 05 Numpy排序搜索计数及集合操作
  7. [转载] Numpy学习之矩阵、函数、二元运算及数组读写
  8. 题解-Codeforces671D Roads in Yusland
  9. canvas背景效果
  10. SQLServer如何取得随机获取的数据库记录