AI全栈开发之Java:什么是JDK

这篇文章简要介绍下JDK。

一、什么是JDK?

JDK(Java Development Kit)是Java开发工具包,是Java程序开发的核心环境。 它提供了编译、运行、调试Java程序所需的全部工具和库。 任何想要开发Java程序的开发者,都必须安装JDK。

二、JDK的主要组成部分

JDK主要由以下几个核心部分组成:

text 复制代码
┌─────────────────────────────────────────┐
│                  JDK                    │
├─────────────────────────────────────────┤
│  1. 开发工具(Development Tools)        │
│  2. JRE(Java Runtime Environment)     │
│  3. Java标准类库(Java API)             │
│  4. 源代码(src.zip)                    │
└─────────────────────────────────────────┘
  1. 开发工具(Development Tools)

    • javac:Java编译器,将.java源文件编译为.class字节码文件
    • java:Java解释器/启动器,用于运行Java程序
    • javadoc:文档生成器,从源代码注释中生成API文档
    • jar:打包工具,将多个.class文件打包为.jar归档文件
    • jdb:Java调试器,用于调试Java程序
    • javap:反编译工具,查看.class文件的字节码内容
    • jconsole:Java监控和管理控制台
    • jvisualvm:可视化性能监控工具
    • jstack:线程堆栈跟踪工具
    • jmap:内存映射工具
    • jstat:JVM统计监控工具
    • jps:查看当前运行的Java进程
  2. JRE(Java Runtime Environment)------ Java运行时环境 JRE是JDK的子集,提供运行Java程序所需的环境。 JRE包含:

    • JVM(Java Virtual Machine):Java虚拟机,负责执行字节码
    • 核心类库:如java.lang、java.util、java.io等
    • 运行时支持文件
  3. JVM(Java Virtual Machine)------ Java虚拟机 JVM是JRE的核心,是Java"一次编写,到处运行"的关键所在。 主要职责包括:

    • 加载字节码(类加载器 ClassLoader)
    • 字节码验证
    • 解释执行/即时编译(JIT Compiler)
    • 内存管理与垃圾回收(GC)
    • 线程管理
  4. Java标准类库(Java API / Java SE API) 提供了丰富的预定义类和接口,主要包括:

    • java.lang:基础类(String、Math、System、Object等)
    • java.util:集合框架、日期时间、工具类
    • java.io / java.nio:输入输出与文件操作
    • java.net:网络编程
    • java.sql:数据库访问(JDBC)
    • java.concurrent:并发编程
    • java.security:安全框架
    • java.math:数学运算
  5. 源代码(src.zip) JDK附带了Java标准类库的源代码,方便开发者学习和参考。

三、JDK、JRE、JVM三者的关系

text 复制代码
  ┌──────────────────────────────────────┐
  │              JDK                     │
  │  ┌────────────────────────────────┐  │
  │  │            JRE                 │  │
  │  │  ┌──────────────────────────┐  │  │
  │  │  │          JVM             │  │  │
  │  │  └──────────────────────────┘  │  │
  │  │  + 核心类库                     │  │
  │  └────────────────────────────────┘  │
  │  + 开发工具(javac, jar, jdb...)     │
  └──────────────────────────────────────┘
  • JVM ⊂ JRE ⊂ JDK
  • 只需要运行Java程序 → 安装JRE即可
  • 需要开发Java程序 → 必须安装JDK

四、Java程序的编译和运行流程

text 复制代码
  .java源文件
      │
      ▼ (javac编译)
  .class字节码文件
      │
      ▼ (java命令启动JVM)
  JVM加载并执行
      │
      ├── 类加载器加载.class
      ├── 字节码验证
      ├── 解释执行 / JIT即时编译
      └── 输出运行结果

五、常见JDK版本

  • JDK 8(LTS):2014年发布,引入Lambda表达式、Stream API
  • JDK 11(LTS):2018年发布,移除JavaFX,引入HTTP Client
  • JDK 17(LTS):2021年发布,密封类、模式匹配增强
  • JDK 21(LTS):2023年发布,虚拟线程、结构化并发

注:LTS = Long-Term Support(长期支持版本)

六、总结

JDK 是 Java 开发的基础,理解其组成结构有助于我们更好地掌握 Java 开发。 核心记忆点:

  • JDK = 开发工具 + JRE
  • JRE = JVM + 核心类库
  • JVM = 类加载 + 字节码执行 + 内存管理 + 垃圾回收
相关推荐
IT规划师22 分钟前
编程术语中的同步与异步:从"等不等"到工程取舍
后端·面试
孟陬1 小时前
Foobar 技术周刊#159:当看不懂代码时,如何高效排障调试。脏页陷阱:一条只读查询,写入数 TB 数据。推测解码:大模型加速利器
前端·人工智能·后端
GoGeekBaird1 小时前
别再给每个 AI 做自我介绍了:我做了一个「个人上下文」管理系统
后端·github·agent
Zhao-Jichao1 小时前
AI Prompting for Everyone 课程笔记 - P17 图像生成 Imaging Generation
前端
码事漫谈1 小时前
腾讯混元 Hy4 正式版发布了
后端
Mikko71 小时前
Redis 连接数满了服务端有错误信息吗?连接数不增加却命令超时?6.2 实测连接池、超时与大 key 怎么判定
java·spring boot·redis·后端
小碗细面2 小时前
Magpie 实战教程:一个本地网关,让 Claude Code 跑 Kimi、Codex 跑 DeepSeek
aigc·ai编程
濮水大叔2 小时前
AI Vibe Coding 实战(三):把 SMS 开发方案落成 Spec 文档
ai编程·claude·vibecoding
Highcharts.js2 小时前
智能数据分析组件Orbit 正式发布与快速上手体验教程
前端·人工智能·信息可视化·数据分析系统·highcharts·orbit·智能可视化
螺丝钉tina3 小时前
[Playwright ][16]Playwright + TypeScript API 自动化测试实战:API测试
前端·javascript·typescript