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 程序。
JRE 由以下主要组件组成,如下所示:
查看下图以了解 JRE 的组件。

让我们了解 JRE 每个组件的简要说明。
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 类加载器获取包含字节码的.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)进行解释。
注意:我们可以选择禁用字节码验证器(这将使其运行速度略快),仅为从网络远程下载的代码启用它,或者为所有代码启用它。