很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的。

今天特写此文,来整理下三者的关系。

JDK : Java Development ToolKit(Java开发工具包)。JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了属于自己的JDK,例如国外IBM公司开发了属于自己的JDK,国内淘宝也开发了属于自己的JDK,各个组织开发自己的JDK都是为了在某些方面得到一些提高,以适应自己的需求,比如IBM的JDK据说运行效率就比SUN的JDK高的多。但不管怎么说,我们还是需要先把基础的Sun JDK掌握好。

JDK有以下三种版本:

J2SE,standard edition,标准版,是我们通常用的一个版本J2EE,enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序J2ME,micro edtion,主要用于移动设备、嵌入式设备上的java应用程序

我们常常用JDK来代指Java API,Java API是Java的应用程序接口,其实就是前辈们写好的一些java Class,包括一些重要的语言结构以及基本图形,网络和文件I/O等等 ,我们在自己的程序中,调用前辈们写好的这些Class,来作为我们自己开发的一个基础。当然,现在已经有越来越多的性能更好或者功能更强大的第三方类库供我们使用。

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

JVM:Java Virtual Mechinal(JAVA虚拟机)。JVM是JRE的一部分,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。JVM有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM 的主要工作是解释自己的指令集(即字节码)并映射到本地的 CPU 的指令集或 OS 的系统调用。Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性。JVM 对上层的 Java 源文件是不关心的,它关注的只是由源文件生成的类文件( class file)。类文件的组成包括 JVM 指令集,符号表以及一些补助信息。

下图很好的表面了JDK,JRE,JVM三者间的关系:

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

转载于:https://www.cnblogs.com/xiaorenwu702/p/5268331.html

jdk jre jvm 关系相关推荐

  1. java基础 DK JRE JVM 关系 JDK 下载和安装

    一 JDK JRE JVM 关系 二 JDK 下载和安装 下载JDK7 JDK的全称是JavaSE Development Kit,即java开发工具包,是sun公司提供的一套用于开发java应用程序 ...

  2. jdk jre jvm的关系

    http://blog.csdn.net/gaopeng0071/article/details/9914683 JDK : Java Development ToolKit(Java开发工具包).J ...

  3. JDK/JRE/JVM之间的关系

    > JDK Java Development ToolKit(Java开发工具包). JDK是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆J ...

  4. day01--java基础编程:计算机基础知识 ,java语言概述,java开发环境搭建,eclipse概述,创建简单java项目,JDK JRE JVM的关系,java开发中的命名规范,编程风格

    1 Day01–Java开发环境+HelloWorld 1.1 计算机基础知识 资料下载网址:刘沛霞 18600949004 code.tarena.com.cn tarenacode code_20 ...

  5. JDK,JRE,JVM区别与联系

    很多朋友可能跟我一样,已经使用JAVA开发很久了,可是对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天特写此文,来整理下三者的关系. JDK : Java Development ...

  6. java实验原理和图例_图例解析JDK,JRE,JVM概念及使用

    本文向大家简单介绍一下JDK,JRE,JVM概念及用法,为了保持JDK的独立性和完整性,在JDK的安装过程中,JRE也是安装的一部分.所以,在JDK的安装目录下有一个名为jre的目录,用于存放JRE文 ...

  7. AJPFX关于JDK,JRE,JVM的区别与联系

    很多朋友可能跟我一样,对JDK,JRE,JVM这三者的联系与区别,一直都是模模糊糊的. 今天我们来整理下三者的关系.JDK : Java Development ToolKit(Java开发工具包). ...

  8. 【剧前爆米花--爪哇岛寻宝】初识Java,了解Java代码的运行机制及JDK,JRE,JVM等

    作者:困了电视剧 专栏:<JavaSE语法与底层详解> 文章分布:这是一篇知识点较为基础的文章,我会先将JavaSE相关的知识给罗列一遍,然后在后续的文章中会对其中重要的点再逐一进行底层剖 ...

  9. [马士兵] 一. 初识JAVA 20. 反编译工具的使用 21. 本章最后一段代码 22. 扩展面试题: JDK, JRE, JVM区别

    20. 反编译工具的使用 编译 源代码----->class 反编译 class---->源代码 反编译工具 jd-gui.exe 21. 本章最后一段代码 public class Hi ...

最新文章

  1. 绘制多边形_XDGE_RayMarchine 1- 利用Frag Shader绘制图形
  2. Radio Button无法对应选择的踩坑实例
  3. python 日志模块 logging
  4. 【转】关于使用Android6.0编译程序时,出现getSlotFromBufferLocked: unknown buffer: 0xac0f8650问题的解释...
  5. c语言二叉树的生成,C语言实现二叉树的创建以及遍历(递归)
  6. JDK 6中新增的Java Console类功能概览
  7. Magento: 解决 Bootstrap 3 与prototype并用的时候, 下拉菜单消失的问题 Bootstrap 3 dropdown menu dis...
  8. Task 'compileDebugSource' not found in root project 'kafka'
  9. AndroidStudio安卓原生开发_Activity的启动模式部分singleTop启动模式和singleTask启动模式---Android原生开发工作笔记87
  10. android同步方法和对象的区别是什么,(4.1.10.8)Android Handler之同步屏障机制(sync barrier)...
  11. 双点双向重分发中的次优路径和环路问题
  12. access注入及工具使用
  13. 别特么的鼓吹“副业刚需”了
  14. Navicat 连接超时问题
  15. Lync 2010 客户端:无法登陆到Lync,验证服务器中的证书时遇到问题
  16. JAVA(第六版)——期末复习2
  17. 19蓝桥国赛B组C/C++ I第八大奇迹
  18. 什么是SVN(Subversion)? 为什么要用SVN?
  19. 【无人机】【2012.09】将无人驾驶飞机系统融入城市环境中的现代警务研究
  20. libnet下载和交叉编译

热门文章

  1. Python3序列解包
  2. eureka服务失效剔除时长配置
  3. ElementUI弹出新增窗口
  4. mybatis架构流程
  5. Spring Data ElasticSearch示例--使用NativeSearchQuery查询
  6. snakeyaml读取yaml/yml配置文件数据
  7. 用python玩转数据第四周答案_用Python玩转数据_章节答案
  8. 计算机组装网上攒机,手把手教你攒电脑:组装电脑全过程
  9. idea 拉取分支代码
  10. 台式电脑耳机插孔在哪_不到一千元的迷你电脑究竟如何?Intel NUC7CJYH测评来了...