文档章节

[Java] JRE、JDK和JVM的区别

o
 osc_g8254g7s
发布于 2019/08/19 23:02
字数 875
阅读 157
收藏 0

精选30+云产品,助力企业轻松上云!>>>

 

在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之间的交互:

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
JRE 和 JDK 的区别详解(附JVM简单说明)

JRE 和 JDK 的区别详解(附JVM简单说明) JRE 和 JDK 的区别是什么? 下面我从JRE,JDK 的功能区别和安装说明两个方面说明两者的不同之处。 一句话概述: JDK是Java的开发工具,它不仅提供了...

望崖
03/31
0
0
jre与jdk的区别

定义 JRE(Java Runtime Enviroment)是Java运行时环境。面向Java程序的使用者,而不是开发者。JRE是运行Java程序所必须环境集合,包含JVM标准实现及Java核心库。它包括Java虚拟机、Java平台核...

WinkJie
2019/05/28
355
0
JDK、JRE、JVM三者间的联系与区别

  有Java编程经验的程序员应该都知道:Java程序是运行在JVM(Java虚拟机)上的,在开发程序之前都要配置Java开发环境,其中首先要做的就是JDK的安装和配置,那么JDK、JVM、JRE到底有何联系和...

osc_2w18qc4t
2019/01/15
3
0
jdk与jre的区别

JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Software Development Kit 一般指软件开发包,可以包括函数库、编译程序等。 JR...

Dendy
2015/03/11
12
0
JDK和JRE的区别

原文:http://www.cnblogs.com/myitm/archive/2011/05/03/2035942.html JDK就是Java Development Kit.简单的说JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。SDK是Softwar...

Rebecca.Hu
2012/03/08
107
2

没有更多内容

加载失败,请刷新页面

加载更多

面试必问之mysql基础

mysql存储引擎 如何选择mysql存储引擎 先得了解下各个存储引擎区别 功能 MylSAM MEMORY InnoDB Archive 功能 MylSAM MEMORY InnoDB Archive 存储限制 256TB RAM 64TB None 支持事务 No No Ye...

lipengxs
3分钟前
0
0
错误:将标头发送到客户端后无法设置标头 - Error: Can't set headers after they are sent to the client

问题: I'm fairly new to Node.js and I am having some issues. 我对Node.js相当陌生,遇到了一些问题。 I am using Node.js 4.10 and Express 2.4.3. 我正在使用Node.js 4.10和Express 2......

法国红酒甜
14分钟前
18
0
Spring中事务不生效的几种情况

数据库引擎不支持事务。 没有被Spring管理。 方法不是public的。 自身调用问题。 数据源没有配置事务管理器。 不支持事务。 异常被吃了。 异常类型错误。 事务失效类型: 数据库引擎不支持事...

九分石人
33分钟前
31
0
从Linux内核理解JAVA的NIO

前言 IO 可以简单分为磁盘 IO 和 网络 IO ,磁盘 IO 相对于网络 IO 速度会快一点,本文主要介绍 磁盘 IO ,网络 IO 下周写。 JAVA 对 NIO 抽象为 Channel , Channel 又可以分为 FileChannel ...

万古云霄
39分钟前
22
0
Material Design用在c#的wpf app中

官网:http://materialdesigninxaml.net/ 样式丰富 做网站和手机不粗 个人觉得不适合用在.net framework中,在.net core中应该大有作为。...

齐勇cn
39分钟前
28
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部