赞
踩
在学习java的过程中,我们经常会看到JDK、JRE、JVM三者的频繁出现,今天作者就带领大家用最少的文字揭揭它们的的老底。
以下几张图是本章浓缩精华,如果阅读完后可以看懂了,就代表已经对它们有了个基本的了解。
首先这三个东西都是缩写,那我们得知道他们的全称吧,以下就是我们的第一个问题。
注:其中kit包含成套工具的意思
*JDK=JRE+java开发工具
JDK 包含了Java 运行时环境(JRE) 、Java 编译器(javac)、Java 类库、调试器等工具。
如集成开发环境:IntelliJ IDEA、编译工具:javac、调试器:JDB——java debugger 等等
JDK 用于开发 Java 应用程序和 Applet。
开发人员通常会使用 JDK 来编写、编译和调试 Java 程序。
注:runtime指的是运行时间
*JRE=JVM+Java程序所需的核心类库
如果用户只需要运行 java 程序而不需要进行开发,则只需安装 JRE 即可
在计算机上执行已经编写好的 Java 程序,而不是在进行程序开发或编写代码。这通常涉及将已经编写好的 Java 源代码文件(.java 文件)编译成 Java 字节码文件(.class 文件),然后通过 Java 虚拟机(JVM)来执行这些字节码文件。
具体步骤如下:
1. 编写并编译 Java 程序:首先,程序员需要编写 Java 源代码并将其保存为 .java 文件。然后使用 Java 编译器(javac)将源代码编译成 Java 字节码文件(.class 文件)。
2. 执行 Java 程序:一旦编译得到了 Java 字节码文件,就可以通过 Java 虚拟机(JVM)来执行这些字节码文件。在命令行中,可以使用 `java` 命令来运行 Java 程序,例如:`java ClassName`,其中 ClassName 是包含主方法(主程序入口)(public static void main(String[] args))的类名。
3. 运行环境配置:在运行 Java 程序之前,需要确保计算机上已经安装了 Java 运行环境(JRE)或者 Java 开发工具包(JDK)。JRE 包含了运行 Java 应用程序所需的 Java 虚拟机和类库,而 JDK 还包含了编译器等开发工具。
这种方式常见于用户使用第三方开发的 Java 应用程序,或者在服务器上部署运行 Java 程序等场景。
JVM 负责将 Java 字节码翻译成特定平台的机器码,并在特定平台上执行。
Java 的跨平台特性是由 JVM 实现的,因为相同的字节码可以在不同的操作系统上运行。
所以,为什么呢?
Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
——简单来说JVM是用来解析和运行Java程序的。
在上述内容中,我们提到了源代码和字节码,那么接下来就来为大家介绍介绍它们的相关知识
假设有一个简单的 Java 类,名为 `HelloWorld`,用于打印一条简单的问候语。这是 Java 源代码的示例:
- public class HelloWorld {
-
- public static void main(String[] args) {
-
- System.out.println("Hello, World!");
-
- }
-
- }
以上是 Java 源代码,保存在名为 `HelloWorld.java` 的文件中。这段代码定义了一个名为 `HelloWorld` 的类,其中包含一个静态的 `main` 方法,用于在控制台输出 `"Hello, World!"`。
接下来,我们需要使用 Java 编译器来编译这个源代码文件,将其转换为 Java 字节码。在命令行中,可以执行以下命令:
javac HelloWorld.java
执行上述命令后,将生成一个名为 `HelloWorld.class` 的字节码文件,这是编译后的 Java 字节码文件。
最后,我们可以使用 Java 虚拟机(JVM)来执行这个字节码文件,输出 "Hello, World!" 这句问候语。在命令行中,可以执行以下命令:
java HelloWorld
这将在控制台上输出:
Hello, World!
这个示例说明了 Java 源代码和字节码之间的转换过程。源代码是程序员编写的高级语言代码,而字节码是由编译器生成的中间代码,可以在 Java 虚拟机上执行。源代码是面向程序员的,而字节码是面向虚拟机的。
由图可知,它们三者之间存在着类似集合中子集的关系。
简单来说,JDK 是用于开发 Java 程序的工具包,JRE 是用于运行 Java 程序的环境,而 JVM 则是 Java 程序在运行时的执行引擎。
当你开始编写 Java 程序时,你会使用 JDK 来编写、编译和运行程序。当你将程序交给用户使用时,用户需要安装 JRE 来运行程序,而程序最终在 JVM 上执行。这三者共同构成了 Java 开发和运行的基础设施。
javac 是 Java 编译器的命令行前端,它将 Java 源代码作为输入,并将其转换为可由 Java 虚拟机(JVM)执行的字节码文件。它采用的是即时编译(Just-In-Time Compilation,JIT)的方式,将高级 Java 代码转换为底层机器代码。
总的来说,`javac` 是 Java 编译器,用于将 Java 源代码编译成字节码文件,以便在 Java 虚拟机上执行。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。