前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >猫头鹰的深夜翻译:JDK Vs. JRE Vs. JVM之间的区别

猫头鹰的深夜翻译:JDK Vs. JRE Vs. JVM之间的区别

作者头像
眯眯眼的猫头鹰
发布2019-03-13 15:29:07
3050
发布2019-03-13 15:29:07
举报

什么是Java Development Kit (JDK)?

JDK通常用来开发Java应用和插件。基本上可以认为是一个软件开发环境。JDK包含Java Runtime Environment(JRE),JRE包含加载器/解释器,编译器(javac),文档生成器(Javadoc),打包功能(jar)和其它在开发中所需要功能:

  • 加载代码
  • 校验代码
  • 执行代码
  • 提供运行时环境

什么是Java Runtime Environment(JRE)

Java Runtime Environment(JRE)又称为Java RTE。JRE中包含核心类和支持文件。它还包含JVM。JVM会提供运行时环境。

  • 确定JVM运行的特定类型。其类型主要由Sun和其它的几个机构提供。
  • 其实现是一个满足JVM特定前提条件的客户端程序。
  • 运行时实例无论何时运行Java类,都会产生JVM。
  • JDK一个物理存在的工具包。它包含JRE和其他工具。
clipboard.png
clipboard.png

什么是Java Virtual Machine(JVM)

JVM为执行Java字节码提供一个运行环境。它是一个抽象的独立于平台运行的机器。它的实现主要包含三个部分,描述JVM实现规格的文档,具体实现和满足JVM要求的计算机程序以及实例(具体执行Java字节码)。

JVM的主要任务包括:

  • 加载代码
  • 校验代码
  • 执行代码
  • 提供运行时环境

JDK, JRE和JVM之间的区别

clipboard.png
clipboard.png

JRE的组成

  • 部署机制:Java Web Start, Java插件等
  • UI工具包:AWT,Swing,Java2D等
  • 集成库:IDL,JDBC,RMI等
  • 其它基础库:I/O,JNI,JMX等
  • Lang和utils基础库:lang,util,格式化,序列化,打包等
  • JVM:Java HotSpot客户端和服务端虚拟机

JRE功能

为了了解JRE的功能,可以看一下是如何加载Example.class这个类的。该类先被转化为一组字节码并放入.class文件中。

clipboard.png
clipboard.png

Java ClassLoader

ClassLoader将执行程序所需的每个重要类放入堆栈中。它通过命名系统来提供彼此之间的安全性。源码可以来自于硬盘,系统以及其它来源。

Java 字节码校验器

JVM通过字节码校验器检查格式并找出非法代码。校验器确JVM执行代码时能够够快,以及这段代码不会损害现存的框架。

clipboard.png
clipboard.png

Java解释器

解释器有两个功能:

  • 执行字节码
  • 正确调用隐藏的设备
clipboard.png
clipboard.png
clipboard.png
clipboard.png
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-11-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是Java Development Kit (JDK)?
  • 什么是Java Runtime Environment(JRE)
  • 什么是Java Virtual Machine(JVM)
  • JDK, JRE和JVM之间的区别
  • JRE的组成
  • JRE功能
    • Java ClassLoader
      • Java 字节码校验器
        • Java解释器
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档