JDK,JRE以及JVM三者之间的关系

JDK(Java Development Kit) Java开发工具包
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
我们常常用JDK来代指Java API,Java API是Java的应用程序接口,其实就是前辈们写好的一些Java Class,包括一些重要的语言结构以及基本图形,网络和文件I/O等等 ,我们在自己的程序中,调用前辈们写好的这些Class,来作为我们自己开发的一个基础。当然,现在已经有越来越多的性能更好或者功能更强大的第三方类库供我们使用。

JRE(Java Runtime Environment) Java运行环境
即Java平台,所有的Java程序都要在JRE下才能运行。包括JVM和JAVA核心类库和支持文件。与JDK相比,它不包含开发工具——编译器、调试器和其它工具。

JVM(Java Virtual Machine) Java虚拟机
JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性。JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file )。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。
Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。
Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。

我们开发的实际情况是:我们利用JDK(调用Java API)开发了属于我们自己的Java程序后,通过JDK中的编译程序(javac)将我们的文本Java文件编译成Java字节码,在JRE上运行这些Java字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

JDK > JRE > JVM

JDK,JRE以及JVM三者之间的关系相关推荐

  1. Java笔记-01(Java语言的特性、JDK、JRE、JVM三者之间的关系和Java重点术语)

    1.Java语言的特性 1.1.简单性在Java语言当中真正操作内存的是:JVM(Java虚拟机)所有的java程序都是运行在Java虚拟机当中的.而Java虚拟机执行过程中再去操作内存.对于C或者C ...

  2. JDK,JRE和JVM三者的关系以及java的运行机制,环境变量,三大版本,特点

    JDK,JRE和JVM 1.JVM Java Virtual Machine是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台. 所谓跨平台性, ...

  3. JDK JRE JVM三者之间的关系,以及JDK JRE包含的结构是什么?

    JDK包含JRE.JRE包含JVM. JDK=JRE+Java开发工具(javac.exe.java.exe.javadoc.exe) JRE=JVM+javase的核心类库

  4. JDK、JRE、JVM三者间的关系

    JDK(Java Development Kit)是针对Java开发员的产品,是整个Java的核心,包括了Java运行环境JRE.Java工具和Java基础类库.Java Runtime Enviro ...

  5. jdk jre jvm三者之间的关系

    定义 JDK(Java SE Development Kit),Java标准开发包,它提供了编译.运行Java程序所需的各种工具和资源,包括Java编译器.Java运行时环境,以及常用的Java类库等 ...

  6. JDK、JRE、JVM三者间的关系(有图)

    考链接:http://playkid.blog.163.com/blog/static/56287260201372113842153/ 文章摘要: 结构如下: 正是 JVM 的存在,使得 java ...

  7. 一次性掌握JDK、JRE、JVM的概念以及三者之间的关系【2021整理】

    一.JDK.JRE.JVM概念解析 JDK(Java Development Kit):Java开发工具包,开发人员用来构建Java应用程序的软件包. JRE(Java Runtime Environ ...

  8. JDK、JRE、JVM三者分别表示什么?有何区别?

    程序员在使用Java开发程序之前都要配置Java开发环境,其中要做的第一件事就是JDK的安装和配置.本文简单地说一下JDK.JRE.JVM三者分别是什么,它们之间的关系又是怎么样的. 一.JDK.JR ...

  9. JDK, JRE 和JVM的区别

    2019独角兽企业重金招聘Python工程师标准>>> Java 开发工具包 (JDK) Java开发工具包是Java环境的核心组件,并提供编译.调试和运行一个Java程序所需的所有 ...

最新文章

  1. RNA-seq中的生物学重复
  2. 判断js中的数据类型的几种方法
  3. VII Python(9)socket编程
  4. 网站设计师必备50教程
  5. Halcon例程详解(植物测量) —— measure_plant.hdev
  6. 详解Android中AsyncTask的使用
  7. 什么是低代码(LowCode)/无代码(NoCode)平台?
  8. 华为交换机学习指南基于子网划分划分vlan
  9. 用Excel做相关性分析
  10. wps怎么图片透明_wpsword如何设置图片透明度
  11. netty之wakeup详解
  12. 多行文本溢出隐藏省略号
  13. 在Edge(Chrome内核)中设置使用Google搜索并设置点击搜索结果默认打开新的标签页
  14. 本门藏经阁 - AndroidX
  15. 如何使用TPTP中的IDatapool
  16. 推荐|45个值得收藏的Python优质资源(附链接)
  17. 隐马尔可夫模型(Baum Welch算法与Viterbi算法)
  18. java科学计数法转正常的数字
  19. 程序员幽默搞笑文章,很有意思!大家一起放松一下!!
  20. 手机系统版本android 8,手机如何升级到安卓8.0系统?对手机有要求吗?

热门文章

  1. 计算机中 递归 的概念,递归是什么?关于递归的详细介绍
  2. Android——Handler、Loop、MessageQueue的工作原理
  3. 如何关闭 Airpods 在 Mac 与 iPhone 之间的自动切换
  4. 收音机磁棒天线4根接法_收音机磁性天线的使用和绕制方法
  5. 手机回收网迅速兴起,闲置手机快速变现有看点
  6. BIOS知识枝桠 -- PCIE
  7. Android语音识别——谷歌语音识别与百度语音识别
  8. 使用networkx绘制网络图及模块使用
  9. eclipse右键之后卡死
  10. BIOS设置光盘启动(上.Award bios)