在Java语言的学习过程中,配置环境时首先会接触到JRE和JDK的概念,后面随着了解的深入,不可避免会学习到JVM。

JRE,全称Java Runtime Environment,也被写成Java RTE。顾名思义,JRE提供Java应用运行所需的最小支撑环境,它包括JVM、核心类、和一些支持文件。

JDK,全称Java Developent Kit,作为Java应用和applets的软件开发环境。它包括Java运行时环境(JRE),解释器/加载器(Java),编译器(javac),归档器(jar),文档生成器(Javadoc)以及Java开发中所需的其他工具。

JVM,全称Java Virtual Machine,首先,JVM是一套工作的规范,但是实现提供者可以独立选择算法;其次,JVM是一个满足JVM规范要求的计算机程序实现;最后,JVM是一个运行时实例,每当在提示符下编写JAVA命令运行Java类时,都会创建一个JVM实例。

 

JDK 是提供开发和运行Java程序的环境,作为一个工具集(包),JDK包括两方面:

1. 开发工具:提供Java程序运行的环境;

2. JRE:执行Java程序。

Java开发人员需要使用JDK。

JRE为执行Java程序的机器提供运行环境,作为一个安装包,JRE仅仅被用于运行Java程序,不能用于开发。

JVM作为JDK和JRE的重要组成,无论Java程序使用JRE还是JDK运行,都会由JVM去一行一行地执行Java程序,JVM被作为一个解释器(interpreter)。

JRE与JDK的运行过程:

一、JRE包括:

(1)部署技术,包括部署,Java Web Start和Java Plug-in。
(2)用户界面工具包,包括抽象窗口工具包(AWT),Swing,Java 2D,辅助功能,图像I / O,打印服务,声音,拖放(DnD)和输入方法。
(3)集成库,包括接口定义语言(IDL),Java数据库连接(JDBC),Java命名和目录接口(JNDI),远程方法调用(RMI),Internet Inter-Orb协议上的远程方法调用(RMI-IIOP)和脚本。
(4)其他基础库,包括国际支持,输入/输出(I / O),扩展机制,Bean,Java管理扩展(JMX),Java本机接口(JNI),数学,网络,覆盖机制,安全性,序列化和Java for Java处理(XML JAXP)。
(5)Lang和util库,包括lang和util,管理,版本控制,zip,仪器,反射,集合,并发实用程序,Java Archive(JAR),Logging,Preferences API,Ref Objects和Regular Expressions。
(6)Java虚拟机(JVM),包括Java HotSpot客户端和服务器虚拟机。

类加载器(Class Loader)
类加载器加载执行程序所需的所有必要类。 它通过将本地文件系统的名称空间与通过网络导入的名称空间分开来提供安全性。 这些文件可以从硬盘,网络或其他来源加载。

字节码验证器(Byte Code Verifier)
JVM通过字节代码验证程序放置代码,该代码验证程序检查格式并检查非法代码。 例如,非法代码是违反对象访问权限或违反指针实现的代码。

字节代码验证程序可确保代码符合JVM规范,并且不会违反系统完整性。

解释器:

在运行时,解释器加载,检查和运行字节代码。 解释器具有以下两个功能:

执行字节代码
对底层硬件进行适当的调用

二、JDK和JRE之间的交互:

[Java] JRE、JDK和JVM的区别的更多相关文章

  1. Java中JRE、JDK和JVM的区别

    一.三者的基本概念: JRE(Java Development Kit):Java的运行环境: JDK(Java Runtime Enviroment):Java开发工具包: JVM(Java Vir ...

  2. Java学习2 - JDK和JRE和JVM的区别_JDK的下载安装_环境变量配置

    一 JDK和JRE和JVM的区别 Jdk: Java Development kit - Java 开发工具 JRE: Java Runtime Environment - java运行环境 JVM: ...

  3. Java虚拟机(JVM),JDK,JRE和JVM的区别——通过示例学习Java编程(2)

    Java虚拟机(JVM),JDK,JRE和JVM的区别 作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid ...

  4. Java中JVM、JRE和JDK三者有什么区别和联系?

    Java 语言的开发运行,也离不开 Java 语言的运行环境 JRE.没有 JRE 的支持,Java 语言便无法运行.当然,如果还想编译 Java 程序,搞搞小开发的话,JRE 是明显不够了,这时候就 ...

  5. Java中JDK、JRE和JVM三者之间有什么区别和联系?Java基础!

    任何语言或软件都需要一个运行环境.正如人想生活在空气中,鱼想生活在水中一样,喜荫植物不能暴露在阳光下,任何物体个体的存在都离不开其所需的环境,编程语言也是一样的. 接下来就详细描述一下Java中JDK ...

  6. 细分java环境中的JDK、JVM、JRE

    细分java环境中的JDK.JVM.JRE 近来小看了下Android,扑面而来一堆概念JDK.JVM.JRE.SDK.NDK.ADT.缕了一下,其中JDK.JVM.JRE是java环境的东西,而SD ...

  7. Java的一些常见问题,JRE,JDK,JVM,包等概念理解

    Java常见错误: 文件名字应该与文件中public类的名字相同 public static void main(String[] args); 如何定位错误和解决错误. JVM,JRE,JDK解释和 ...

  8. jdk、jre与jvm的区别与联系

    为了学习数据库,重装了系统,之前前一直在用eclipse,现在准备换成myeclipse,这之前当然需要重新设置环境变量,顺手写下有关jdk.jre与jvm的区别与联系以供交流参考. 首先来说一下JD ...

  9. JDK、JRE、JVM的区别

    JDK: JDK(Java Development Kit)顾名思义它是给开发者提供的开发工具箱,是给程序开发者用的.它除了包括完整的JRE(Java Runtime Environment),Jav ...

随机推荐

  1. SpringCloud"灰度部署"——动态刷新网关配置

    通过Acutator和SpringCloudConfig完成"灰度部署"——动态刷新网关路由配置 先声明下,我这个可能是冒牌的灰度部署,技术有限,纯粹个人笔记分享. 前段时间接到了 ...

  2. meta标签常见浏览器设置

    一.如何让双核浏览器默认选择 WebKit 内核渲染自己开发的网页 我们可以使用标签来指定适合自己网站的渲染内核名称,当双核浏览器访问本网页时,就会根据我们的指示,选择我们指定的渲染内核来处理网页.若 ...

  3. Tomcat应用访问SSL或https失败的解决办法

    一,首先,解决unable to find valid certification path to requested target的问题. 其实就是要生成证书, 让tomcat读取证书 import ...

  4. SOAP与restful webservice

    SOAP 什么是SOAP,我想不用多说,google一把满眼都是.其实SOAP最早是针对RPC的一种解决方案,简单对象访问协议,很轻量,同时作为应用协议可以基于多种传输协议来传递消息(Http,SMT ...

  5. javascript 给事件任务一个缓冲区

    在编写前端的过程中,经常会监听事件并执行任务,我在这抛出2个比较常见的场景: 1.输入关键字搜索如果你监听input的chage事件,会有一个问题,在使用中文输入法时,你输入的几个拼音字母都会被触发我 ...

  6. nginx环境依赖

    安装nginx所必需的的依赖环境 yum -y install pcre pcre-devel yum -y install zlib zlib-devel yum -y install zlib z ...

  7. HTML块级元素与行内元素的区别

    块级元素:块级大多为结构性标记 <address>...</adderss> <center>...</center> 地址文字 <h1>. ...

  8. YOLO---YOLOv3 with OpenCV 再使用

    YOLO---YOLOv3 with OpenCV 再使用YOLOv3 with OpenCV官网 @ https://github.com/JackKoLing/opencv_deeplearnin ...

  9. 六、vue基础--过滤器定义

    七.过滤器定义 1.使用:{{username|strip}}.<a :href="url|strip">百度</a> 2.定义:都是定义一个函数,这个函数 ...

  10. window open() 方法

    open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口. 语法 window.open(URL,name,specs,replace) 参数 说明 URL 可选.打开指定的页面的URL.如 ...