Java JDK, JRE和JVM

Java JDK/JRE/JVM 架构解析

一、核心定义

  1. JVM (Java Virtual Machine)
  • 本质:字节码执行引擎
  • 功能:提供内存管理、即时编译(JIT)、垃圾回收(GC)机制
  • 特性:平台相关(不同OS需对应JVM实现)
  • 生命周期:进程级(每个Java应用启动独立JVM实例)
  1. JRE (Java Runtime Environment)
    = JVM + 核心类库(java.lang/java.util等) + 配置文件
  • 作用:Java程序运行的最小完整环境
  • 包含:
    • rt.jar(运行时类库)
    • 安全策略文件
    • 本地方法接口(JNI)
  1. JDK (Java Development Kit)
    = JRE + 开发工具链
  • 关键组件:
    • javac(编译器)
    • jar(打包工具)
    • jshell(交互式编程)
    • jlink(定制化运行时生成)
    • 调试/监控工具(jdb, jvisualvm)

二、层级关系
┌───────────┐
│ JDK │
│ ┌───────┐ │
│ │ JRE │ │
│ │ ┌───┐ │ │
│ │ │JVM│ │ │
│ │ └───┘ │ │
│ └───────┘ │
└───────────┘

三、版本演进对比

Java 8Java 17 LTSJava 21 LTS
JVM改进PermGen移除ZGC正式生产可用分代ZGC
JDK工具jmc需要单独下载jpackage模块化打包虚拟线程支持增强
JRE大小~200MB~150MB(基础模块)~40MB(自定义运行时)

四、典型应用场景

  1. 开发者工作站:必须安装JDK(含完整JRE)
  2. 生产服务器:只需部署JRE或使用jlink生成的定制运行时
  3. 客户端应用:通过jpackage生成包含JRE的独立安装包

五、诊断命令示例

# 查看JVM参数
jinfo <pid>

# 分析内存使用
jmap -heap <pid>

# 追踪类加载情况
java -verbose:class MainClass

六、现代Java环境变化

  1. 模块化系统(JPMS):允许裁剪JRE大小
  2. GraalVM:支持多语言运行的增强型JVM
  3. Project Leyden:推进静态编译技术发展

附:官方资源

  • JVM规范:https://docs.oracle.com/javase/specs/jvms/se21/html/
  • JDK工具指南:https://dev.java/learn/jdk-tools/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值