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

最新文章

  1. Java基础加强之集合篇(模块记忆、精要分析)
  2. Ubuntu(基于Ubuntu)中常用的apt和dpkt命令
  3. LockSupport
  4. Oracle SQL优化一(常见方法)
  5. 谈PHP中信息加密技术
  6. javascript,css延迟加载器
  7. redhat 6.7 安装nvidia显卡驱动时出现的问题
  8. shell编程之环境变量
  9. 小学生之Java中迭代器实现的原理
  10. 使用requirejs实现模块化编程
  11. Java 第十一周总结
  12. 想不到的:js中加号操作符
  13. 解析CommandMessage
  14. Ansible 简介
  15. 杭电 1061 Rightmost Digit计算N^N次方的最后一位
  16. Codeforces Round #424 Div. 1
  17. SQL Server进阶 索引
  18. unity windowEditor平台下鼠标左键控制摄像机的视角
  19. Hive记录-配置客户端可视化管理工具远程连接
  20. RabbitMQ理论

热门文章

  1. Mysql基础学习_Windows版(一)
  2. C++ 类再探
  3. swoole聊天室
  4. 前端(HTML)+后端(Django)+数据库(MySQL):用户注册及登录演示
  5. Git学习笔记08-远程仓库
  6. nuxt入门
  7. linux的简单了解和使用
  8. Robot Framework--修改log和报告的生成目录
  9. Dijkstra算法和Floyd算法
  10. Nginx中ngx_http_fastcgi_module