您的位置 首页 java

Java运行时环境JRE的详细介绍

JDK(Java Development Kit)、 JVM (Java Virtual Machine)和 JRE ( Java Runtime Environment)是Java程序开发和运行的三个非常重要和强大的组成部分。在这之前我已经介绍了JDK( )。在这篇文章中,我将向各位介绍Java的运行时环境—JRE。

实际上,运行时环境是设计用来运行 其它 软件的一个软件。作为Java的运行时环境,JRE包含了Java的各种基础类库、Java类加载器和Java 虚拟机 。在这个系统中:

  • 类加载器负责正确加载类,并将它们与核心的Java类库链接到一起。
  • JVM负责提供资源,以确保Java程序能够正常运行,并且在我们设备或者云环境中良好运行。
  • JRE主要用于 其它 组件的容器,负责协调其活动。

从安装的角度来看,在任何时候安装JDK,它都会同时安装一个与其版本匹配的JRE,并且这个JRE会包含一个默认的JVM。当然我们也可以自己单独下载JRE,并且可以选择自己喜欢的JVM。绝大多数时候我们只需要选择某人的JRE和JVM即可,特别是当我们刚刚接触Java的时候。

什么是运行时环境?

当需要执行一个程序的时候,就需要有一个合适的环境来运行它。运行时环境会加载类文件并且确保可以访问内存和 其它 资源来运行它们。在过去,很多软件都使用操作系统作为他们的运行环境。软件可以在任何的计算机上运行,但是会依赖计算机上的操作系统设置来访问资源。在这里,资源可以是内存、程序文件或者各种 其它 依赖。对于JRE而言,这一切都不是这样的。

在最开始Java提出的“一处编写,处处运行”的原则被认为是革命性的。现如今,这个原则已经被许多的 其它 的系统或者编程语言所采纳。

Java运行时环境

我们可以把Java软件看成是一栋建立在操作系统这块大地上的高楼大厦。大厦的每一层都会提供服务支撑着它的上一层,并且会依赖于他们的下一层。Java运行时环境就是这栋高楼大厦最下面的一层,他直接和大地(操作系统)对接,并且提供统一的服务(Java各种系统类库和API)给上面一层(我们写的代码程序)。

JRE屏蔽了各个操作系统之间的差异,从而实现了无需修改代码就能够让程序在各个操作系统中运行。同时JRE还提供了很多的增值服务,比如:自动内存管理。自动内存管理是JRE中最为重要的功能之一,它确保了程序员不必再手动的控制内存的分配和释放。

简而言之,JRE就是一种特别的操作系统。他能够把各种底层的操作系统抽象为统一的、可运行Java程序的一致平台。

JRE是如何工作的

Java虚拟机是一个负责执行Java程序的软件系统。JRE则能够把我们写的代码和必要的Java类库结合起来,并且启动一个Java虚拟机来运行这些代码。

在JRE中包含了我们的程序运行所依赖的类库和软件,比如Java类加载器就是JRE的重要组成部分。

安装并使用JRE

虽然JRE有一个概念性的一面,但在现实世界中,它只是安装在计算机上的软件,其目的是运行Java程序。作为开发人员,我们主要使用JDK和JVM,因为它们是用来开发和运行Java程序的平台组件。作为Java应用程序用户,则更多的使用JRE,因为我们依赖它来运行程序。

绝大多数情况下,我们的电脑中都已经安装好了Java,里面也会包括JRE。如果想要自己安装或者升级JRE,则可以前往Oracle的Java网站上下载并安装。

JRE会随着Java的升级而升级,JRE的版本号也是采用的Java的版本号,所以JRE1.8所对应的就是Java 8。对于JDK我们会面临选择软件包类型的问题(比如Java EE或者Java ME),在JRE中则没有这个问题。绝大多数计算机都运行一个由Java SE开发的JRE,它能够运行任何Java程序。大多数的移动设备都会预装一个适配了Java ME的JRE,不过这个JRE我们无法下载到。

DevOps中的JRE

JRE在开发过程中作用并不是很明显,它主要是在我们的操作系统或者是IDE中运行。JRE在DevOps和系统管理中扮演着更为突出的角色,因为他能够用于监视和配置。

JRE提供了用于配置和控制Java程序的手段,比如系统管理中的内存使用查看等。如果你的工作会涉及到DevOps相关的内容,或者对DevOps比较感兴趣,那么熟悉和掌握各种JRE工具是非常重要的。比如通过JRE工具可以查看Java程序在运行过程中的内存分配和使用情况等。

DevOps是一个比较新的术语,但是它所描述的内容却是一个几十年来一直在做的事情:开发和操作之间的互操作性。

内存和JRE

Java内存由3个部分组成:堆( heap )、栈(stack)和元空间(metaspace)。

+ 元空间是用来存放程序中不会变更的数据的,比如类的定义等。

+ 堆是存放可变内容的。

+ 栈存放是Java存储函数执行和变量引用的地方。

Java程序监控

虽然应用程序监视是JVM的一个功能,但是JRE提供了配置选项,这是监视所必需的。各种工具可用于监视Java应用程序,从经典(如UNIX命令TOP)到复杂的远程监控解决方案,如Oracle的基础设施监控。如VisualVM,允许检查运行的JVM。这些工具能够跟踪热点和 内存泄漏 ,以及监视系统中的整体内存消耗。

相关文章:

文章来源:智云一二三科技

文章标题:Java运行时环境JRE的详细介绍

文章地址:https://www.zhihuclub.com/182212.shtml

关于作者: 智云科技

热门文章

网站地图