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 = 类加载 + 字节码执行 + 内存管理 + 垃圾回收
相关推荐
Java后端的Ai之路7 小时前
06-React-Props
前端·react.js·前端框架
行百里er7 小时前
Redis 完结篇——Redis 热点问题在 Spring Boot 项目中实战
redis·后端
Flynt8 小时前
开源"间谍卫星"说数据全是真的,我把它的免key数据源挨个试了一遍
前端·开源·数据可视化
Csvn8 小时前
渲染管线
前端
程序员大阳8 小时前
副队长CSS教程(33)–圆角与透明
前端·css·透明·圆角
高频因子挖掘机8 小时前
只取最近 60 个交易日,却每次拉全历史:量化脚本变慢的原因与改法
后端·github·api
志尊宝8 小时前
Vue3 零基础每日笔记(082):文件上传实战——el-upload 校验、自定义上传、头像预览
前端·javascript·vue.js·笔记·#javascript·#vue.js
小虎AI生活8 小时前
端云混合智能体落地拆解:英特尔×华硕把 WorkBuddy 优化进笔记本
aigc·ai编程
鬼手点金9 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
threerocks9 小时前
重磅开源!sweety-handdraw-video:目前市面最强手绘视频管线,ChatGPT 完美运行
aigc·openai·ai编程