JAVA_01 JDK、JRE、JVM

本文深入解析Java两大核心机制:Java虚拟机(JVM)与垃圾收集。阐述了JVM如何作为字节码的CPU,实现跨平台运行;并介绍了垃圾收集机制如何自动管理内存,免除程序员手动回收内存的负担。同时,对比了JDK、JRE和JVM的功能区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Java程序运行机制及运行过程

Java两种核心机制:

①Java虚拟机(Java Virtual Machine)

②垃圾收集机制(Garbage collection)

二、核心机制之Java虚拟机

①Java虚拟机可以理解成一个以字节码(目标代码)为机器指令的CPU。

②对于不同的运行平台,有不同的虚拟机

③Java虚拟机机制屏蔽了底层平台的差别,实现了“一次编译,随处运行”。

三、核心机制之垃圾收集

①不再使用的内存空间应回收——垃圾收集。

②在C/C++等语言中,由程序员负责回收无用内存。

③Java需要消除了程序员回收无用内存空间的责任,提供了一种系统级线程跟踪存储空间的分配情况。并在JVM的空闲时,检查并释放那些可被释放的存储器空间。

④垃圾收集在Java程序运行过程中自动进行,程序员无法精准控制和干预。

四、JDK、JRE、JVM

JDK包括了Java运行环境(JRE)、Java工具和Java基础类库。

JRE(Java Runtime Environment)是运行Java程序所必需的环境集合。包括JVM标准实现及Java核心类库。

1、JDK(Java Development Kit)

    JDK是面向Java开发人员使用的开发工具包,提供了Java的开发环境运行环境是用于支持Java程序开发的最小环境。包括了Java运行环境(JRE)、工具及工具API。

2、JRE(Java Runtime Environment)

    是运行基于Java语言编写的程序所不可缺少的运行环境,也是通过它,Java的开发者才得以将自己开发的程序发布到用户手中,让用户使用。JRE包括JVM、语言和工具基础库、集成库、工具集等。

    与大家所熟知的JDK不同,JRE是Java运行环境,并不是开发环境,所以没有包含任何开发工具(如编译器和调试器)。

3、JVM(Java Virtual Machine )

    就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分 ,所有的java程序首先被编译为class的类文件,这种类文件可以在虚拟机上执行。也就是说class文件并不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需在Java虚拟机上运行字节码(目标代码),就可以在多种平台上不加修改地运行。


--------------------- 
作者:李硕 
来源:优快云 
原文:https://blog.youkuaiyun.com/qq_26545305/article/details/53446287 
版权声明:本文为博主原创文章,转载请附上博文链接!

### JDKJREJVM 的概念及区别 #### 1. JDK (Java Development Kit) JDKJava 开发工具包,主要面向开发者设计。它包含了编译器 (`javac`)、调试器和其他开发所需的工具和库文件。通过 JDK,开发者能够编写、测试并部署 Java 应用程序。值得注意的是,JDK 中已经内置了 JRE,因此安装 JDK 后可以直接运行 Java 程序[^1]。 #### 2. JRE (Java Runtime Environment) JREJava 运行时环境,专注于提供运行已有的 Java 程序所需的支持。它的核心组成部分是 JVMJava 虚拟机)。对于仅需运行 Java 程序而不涉及开发工作的场景来说,单独安装 JRE 就足够了。 #### 3. JVM (Java Virtual Machine) JVM 是一个抽象的计算机模型,定义了一种规范来解释或执行 Java 字节码。它是 Java 实现跨平台特性的核心技术所在。无论是在 Windows、Linux 或 macOS 上,只要存在对应的 JVM 实现,就可以无缝运行同一份 Java 程序[^4]。此外,JVM 提供了许多高级特性,比如内存管理、垃圾回收机制以及 JIT 编译优化等功能[^5]。 #### 区别总结 | **名称** | **描述** | **用途** | |----------|----------------------------------------------------------------------------------------------|--------------------------------------------| | JDK | 包括编译器、调试器及其他开发工具;包含完整的 JRE | 面向开发者,用于创建新的 Java 应用 | | JRE | 只包含运行现有 Java 程序所需要的类库及相关资源 | 用户端用来启动和操作 Java 应用 | | JVM | 抽象层面上的一个虚拟处理器,负责加载 .class 文件并将它们转换成底层硬件可理解的形式 | 执行字节码,保障 Java 程序能在多种平台上运作 | ```java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); // 此代码由 JDK 编译后,在 JVM 上运行。 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值