什么是 JRE-Java快速进阶教程
Java 平台的三个最基本的部分是 Java 虚拟机 (JVM)、Java 运行时环境 (JRE) 和 Java 开发工具包 (JDK)。
Java 运行时引擎 (JRE) 是执行 Java 程序的软件环境。换句话说,JRE 是在任何系统上执行 Java 应用程序所需的软件环境,无论操作系统和底层硬件如何。
JRE 是 Java 开发工具包的一部分, 它不能用于开发Java应用程序,但可以用于执行字节码,有关字节码内容详见,Java字节码-Java快速进阶教程。
Java 运行时环境是包含 Java 虚拟机和许多类库文件的程序集合,这些文件是在 JVM 上运行程序(通过 java 命令)所必需的。
如果您的计算机系统安装了最新的 JDK(Java 开发工具包),则无需再次安装。
Java 开发工具包还包含 Java 运行时环境 (JRE),可以在系统的 Eclipse 中运行 Java 程序。
Java 运行时环境 (JRE) 的组件
JRE 由以下主要组件组成,如下所示:
- Java API (Application Programming Interface)
- 类装入器
- 字节码验证器
- Java 虚拟机(解释器)
查看下图以了解 JRE 的组件。
让我们了解 JRE 每个组件的简要说明。
什么是Java API(应用程序接口编程)?
Java 应用程序编程接口 (API) 是一个非常大的预打包、现成软件组件集合,它提供了 Java 编程语言的核心功能。
简单来说,Java API 是以 Java 包的形式由已定义的类、接口和方法组成的大型集合。
它为程序员提供了许多有用的功能,例如图形用户界面 (GUI)、日期、时间和日历功能。
Java API 被分组到相关类和接口,以及它们的字段、构造函数和方法的库中。这些库以包的形式提供。
它提供了基于核心 Java 平台构建的额外编程功能。这意味着Java编程语言的基本功能在新版本发布时不会改变。
由于Java API是灵活的,因此可以打开它以向其添加新的包或库。
下面我给大家介绍一下Java API中的一些流行库及其功能:
a) Java.lang:它是一个提供设计Java编程语言的基本类的软件包。
Java.lang包中最常用的类是Double,Float,Integer,String,StringBuffer,System和Math。
b)Java.io:它支持通过文件系统,键盘,网络等输入/输出。java.io 包包含多个用于执行输入和输出操作的类。
java.io 最常用的类是File类, File class, InputStreams, OutputStreams, Readers, Writers 和RandomAccessFile。
c) Java.util:它支持各种编程实用程序。java.util 包提供集合类、事件模型、集合框架、日期和时间功能以及其他实用程序类,如字符串标记器。
d) Java.math:它用于支持数学运算。
e) Java.security:它支持安全功能。
f) Java.awt:它支持创建图形用户界面(GUI),绘制图形和图像。
g) Java.sql:它支持通过SQL访问关系数据库。
h) Java.beans:它支持创建java beans。
i) Java.net:java.net 包提供了用于在java程序中实现网络的类。
j) Java.imageIO:它支持图像输入/输出。
这些预定义的Java API为程序员提供了大量的核心功能。程序员应该了解这些Java API。他应该知道如何使用这些Java API。
这些是Java API中一些重要库的示例。我们将在进一步的教程中更详细地讨论这些库。
什么是 Java 中的类加载器?
当我们用 java 编写程序时,该程序在执行之前被类加载器放置在内存中。
Java 类加载器获取包含字节码的.class文件并将其传输到内存中。它可以从系统的磁盘或通过网络加载.class文件。
加载类后,它被传递给字节码验证器。
在Java中,类加载器基本上有三个子组件。它们如下:
- 引导类装入器
- 扩展类装入器
- 系统类装入器
a) 引导类加载器:
引导类装入器装入位于 java安装根目录(C:\Program Files\Java\jre***,在这里只是示例路经)\lib 中的核心 Java 库。一般情况下JRE目录的内容如下面的屏幕截图所示样子。
您可以清楚地看到不同的 *.jar 文件,例如 charsets.jar、deploy.jar、javaws.jar、plugin.jar 等。
b) 扩展类加载器:
扩展类装入器从扩展目录 ***\lib\ext 装入类。下面的屏幕截图显示了 JRE8 环境中扩展目录的内容。
您可以在上面的屏幕截图中清楚地看到可用的不同JAR文件:access-bridge-32.jar,localedata.jar等。您还可以看到转到上述路径位置。
c) 系统类加载器:
系统类装入器从操作系统定义的 CLASSPATH 环境变量中指定的位置装入代码。
什么是字节码验证程序?
字节码验证器在不违反任何 Java 安全规则的情况下验证字节码是否有效。它特别注意检查代码中所有变量和表达式的类型。
字节码验证程序可确保没有对内存的未经授权的访问。一旦代码被成功验证,它就会被传输到Java虚拟机(JVM)进行解释。
注意:我们可以选择禁用字节码验证器(这将使其运行速度略快),仅为从网络远程下载的代码启用它,或者为所有代码启用它。