JDK、JRE、JVM的区别

JDK(Java Development Kit)、JRE(Java Runtime Environment)和JVM(Java Virtual Machine)是Java技术栈中的三个核心组件,它们各自有不同的功能和用途:

  1. JDK(Java Development Kit):

• 开发工具包:JDK是Java开发工具包,它包含了JRE的所有内容,以及编译器、调试器和其他工具,这些工具对于开发Java应用程序是必需的。

• 编译和运行:JDK允许开发者编写、编译、打包、调试Java代码,并运行Java程序。

• 开发环境:它提供了一个完整的开发环境,包括javac(Java编译器)、java(Java运行器)和javadoc(Java文档生成器)等命令行工具。

  1. JRE(Java Runtime Environment):

• 运行时环境:JRE是Java运行时环境,它包含了JVM和运行Java程序所需的核心类库。

• 运行Java程序:JRE允许用户运行Java应用程序,但不包括开发工具。它确保Java程序能够在不同的操作系统和平台上运行。

• 不包含开发工具:JRE不包括编译器或调试器,因此不能用于开发新的Java应用程序。

  1. JVM(Java Virtual Machine):

• 虚拟机:JVM是一个虚拟机,它提供了一个运行时环境,允许Java字节码(.class文件)在任何安装了JVM的设备上运行。

• 跨平台特性:JVM是Java语言"一次编写,到处运行"(Write Once, Run Anywhere,WORA)理念的核心,它使得Java程序能够在不同的操作系统上运行,而不需要为每个平台重新编译。

• 执行字节码:JVM加载.class文件,解释或编译字节码,并执行程序。

• 内存管理:JVM还负责内存管理,包括垃圾回收等。

总结来说,JDK是为开发者提供的一套完整的开发工具集,JRE是为最终用户提供的运行Java程序的环境,而JVM是JRE中的核心组件,负责执行Java字节码。开发者需要JDK来开发Java程序,而最终用户只需要JRE来运行这些程序。JVM是JRE的一部分,提供了Java程序运行的平台无关性。

相关推荐
摇滚侠4 分钟前
云原生 Java 架构师的第一课 K8s+Docker+KubeSphere+DevOps 26-40
java·云原生·kubernetes
认真的酒窝9 小时前
自己动手开发编译器(十一)语义分析
java·开发语言
wbs_scy10 小时前
Linux C++ 高并发编程:线程池全链路深度解析,从原理到手撕实现
java·开发语言
JAVA面经实录91710 小时前
Linux 常用命令完整知识体系
java·linux·开发语言·汇编
Full Stack Developme12 小时前
Java LRU 与 LFU 算法及应用
java·开发语言·算法
程序员老油条14 小时前
WSL2 + Docker Desktop:Windows 下的完美 Java 开发环境
java·windows·docker·wsl2
shushangyun_15 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
她说..15 小时前
Java 默认值设置方式
java·开发语言·后端·springboot
学渣超16 小时前
记一次分布式事务数据不一致的排查之旅:从超时到索引,层层剥茧
java·后端·架构
掉鱼的猫16 小时前
Agent Harness 实战指南:构建生产级 AI Agent 的"马具"框架
java·llm·aigc