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 = 类加载 + 字节码执行 + 内存管理 + 垃圾回收
相关推荐
葫芦和十三4 小时前
图解 MongoDB 21|选举与 failover:Primary 是怎么选出来的
后端·mongodb·agent
GetcharZp5 小时前
26k Star 开源内网穿透神器 NetBird,一分钟实现全球设备互联!
后端
考虑考虑6 小时前
Mybatis实现批量插入
java·后端·mybatis
咖啡八杯6 小时前
GoF设计模式——中介者模式
java·后端·spring·设计模式
Warson_L9 小时前
独立开发推荐安装的skills
ai编程
lizhongxuan9 小时前
多Agent之间的区别
后端
threerocks9 小时前
一用一个不吱声的视频解析 Skill,你值得拥有
aigc·ai编程
吴佳浩11 小时前
AI 工程师知识地图:模型格式、框架、部署工具一次讲明白
人工智能·aigc·ai编程
kyriewen11 小时前
我手写了一个 EventEmitter,面试官追问了 6 个问题——第 4 个我没答上来
前端·javascript·面试
杨充11 小时前
1.面向对象设计思想
后端