龙空技术网

JDK、JRE、JVM区别与联系

不三的二 164

前言:

今天小伙伴们对“c语言jdk”大约比较看重,大家都需要分析一些“c语言jdk”的相关文章。那么小编同时在网络上收集了一些有关“c语言jdk””的相关资讯,希望同学们能喜欢,兄弟们一起来了解一下吧!

什么是 JDK?

JDK(Java Development Kit)是java开发工具包的缩写,用于制作程序和Java应用程序的软件开发环境。Java 开发人员可以在 Windows、macOS、Solaris 和 Linux 上使用,是一个跨平台编程语言。JDK 帮助他们编写和运行 Java 程序。可以在同一台计算机上安装多个JDK版本。它包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

JDK安装目录

在JDK的安装目录下面有六个文件夹、一个src类库源码压缩包、和其他几个声明文件。其中,真正在运行java时起作用的是以下四个文件夹:bin、include、lib、 jre。

bin:最主要的是编译器(javac.exe)include:java和JVM交互用的头文件lib:类库jre:java运行环境

(注意:这里的bin、lib文件夹和jre里的bin、lib是不同的)

什么是 JRE?

JRE(Java Runtime Environment)是java运行环境的缩写,一个旨在运行其他软件的软件(有点绕口)。它包含核心类库、JVM和其他一些必要工具(jre里有运行.class的java.exe)。简单来说,如果你想运行Java程序,你需要JRE。如果您不是程序员,则无需安装 JDK,只需安装JRE即可运行Java程序。不过,所有JDK 版本都与Java Runtime Environment 捆绑在一起,因此无需在 PC 单独下载和安装 JRE。

什么是JVM?

JVM(Java Virtual Machine)是java虚拟机的缩写,是一个引擎,它提供运行时环境驱动Java代码或应用程序。通过使用JRE提供的类、库和文件来运行程序。JVM能够运行用Java和其他语言编写的程序,也可以编译成Java字节码。例如Jython、Jruby、Closure、Apache、Groovy、Kotlin等。它将 Java 字节码转换为机器语言JVM是Java运行环境 (JRE) 的一部分。它不能单独下载和安装。要安装JVM,您需要安装 JRE。JVM的就是Java虚拟机。在许多其他编程语言中,编译器为特定系统生成机器代码。但是,Java 编译器则称为JVM虚拟机生成代码。

JVM

JVM的术语:

类加载器(Class Loader Subsystem)

类加载器读取.class文件并将字节码保存在方法区域中。

方法区(Method Area)

方法区域保存.class文件的类级信息。JVM只有一个方法区域,在所有类之间共享。

堆(Heap)

堆是分配对象的JVM内存部分。JVM为每个.class文件创建一个对象。

栈(Stack)

栈是JVM内存部分,但与堆不同,它用于存储临时变量,即方法参数。

PC寄存器(Program Counter Registers)

PC寄存器用于跟踪已执行的指令和将要执行的指令。因为指令是由线程执行的,所以每个线程都有一个单独的PC寄存器。

JIT编译器(JIT Compiler)

JIT也称为即时编译器。调用方法时使用。JIT将被调用方法的字节码编译成本机代码。当一个方法在本机代码中编译时,JVM直接调用该方法的编译代码,而不是解释它。

本机方法堆栈(Native Internal Threads)

用于访问虚拟机的运行时数据区域的本机方法。

本机方法接口(Native Method Interface)

它使java代码能够在C或C++中用本地应用程序调用或调用。本机应用程序是特定于系统硬件和操作系统的低级语言程序。

垃圾收集(Garbage Collector)

通过JVM使用垃圾收集进行自动内存管理。它从堆中销毁未引用的对象,以便为新对象分配更多内存。

主要区别JDK是一个软件开发工具包,而JRE是一个允许Java程序运行的软件包,JVM则是一个执行字节码的环境。JDK 是平台相关的,JRE 也是平台相关的,但是 JVM 不是平台相关的。JDK 包含开发、调试等工具。JRE 包含类库和其他支持文件,而软件开发工具不包含在 JVM 中。JDK 附带安装程序,另一方面,JRE 仅包含执行源代码的环境,而 JVM 捆绑在软件 JDK 和 JRE 中。

JDK、JRE、JVM关系

JDK的特点

以下是 JDK的重要特性:

它使您能够在单个 catch 块中处理多个扩展。JDK 包含了 JRE 的所有特性。它包含开发工具,例如编译器、调试器等。JDK 提供了开发和执行 Java 源代码的环境。它可以安装在 Windows、Unix 和 Mac 操作系统上。菱形运算符可用于指定泛型类型接口,而不是编写确切的类型接口。JRE的特点

以下是 JRE 的重要特性:

Java 运行时环境是 JVM 实际运行所使用的一组工具。JRE 包含部署技术,包括 Java Web Start 和 Java Plug-in。开发人员可以轻松地在 JRE 中运行源代码,但不能编写和编译 Java 程序。它包括集成库,如 Java 数据库连接 (JDBC)、远程方法调用 (RMI)、Java 命名和目录接口 (JNDI) 等。JRE 有 JVM 和 Java HotSpot 虚拟机客户端。JVM的特点

以下是 JVM 的重要特性:

它使您能够在云环境或设备中运行应用程序。Java 虚拟机将字节码转换为特定于机器的代码。它提供了基本的 Java 功能,如内存管理、安全性、垃圾收集等。JVM 通过使用 Java Runtime Environment 提供的库和文件来运行程序。JDK 和 JRE 都包含 Java 虚拟机。它可以逐行执行java程序,因此也称为解释器。JVM 易于定制,例如,您可以为其分配最小和最大内存。它独立于硬件和操作系统。因此,您可以编写一次 java 程序并在任何地方运行。

因此,现在我们可以看出这样一个关系,JDK包含JRE,而JRE包含JVM。

标签: #c语言jdk