一、什么是 JDK?
JDK(Java Development Kit)是 Java 开发工具包的缩写,它是 Java 开发的核心组件。JDK 不仅包含了 Java 运行环境(JRE),还包含了一系列开发工具(如编译器 javac、调试器 jdb 等)和基础类库。
Java JDK 的定义、组成及主流版本选择。涵盖了 Windows、macOS 和 Linux 系统的下载与安装步骤,包括环境变量配置(JAVA_HOME 和 Path)的具体操作。内容包含 JDK 目录结构解析、核心 API 包说明、常用工具链(javac、java、jconsole 等)的使用方法及实际代码示例。最后提供了常见问题的解答,帮助开发者快速搭建 Java 开发环境并理解 JDK 基础原理。

JDK(Java Development Kit)是 Java 开发工具包的缩写,它是 Java 开发的核心组件。JDK 不仅包含了 Java 运行环境(JRE),还包含了一系列开发工具(如编译器 javac、调试器 jdb 等)和基础类库。
目前主流版本有:
对于初学者,建议选择 Java 11 或 Java 17,因为它们都是长期支持版本。
注意:从 Java 11 开始,Oracle 提供了两种 JDK 发行版:
环境变量配置:
JAVA_HOMEC:\Program Files\Java\jdk-17.0.1)%JAVA_HOME%\bin%JAVA_HOME%\jre\bin打开终端验证:
java -version
tar -xzf jdk-17_linux-x64_bin.tar.gz -C /usr/local/
export JAVA_HOME=/usr/local/jdk-17.0.1
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bashrc
在命令行/终端中执行以下命令:
java -version
javac -version
成功安装会显示类似信息:
java version "17.0.1" 2021-10-19 LTS
Java(TM) SE Runtime Environment (build 17.0.1+12-LTS-39)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.1+12-LTS-39, mixed mode, sharing)
安装后的 JDK 目录结构如下:
jdk-17.0.1/
├── bin/ # 可执行文件
├── conf/ # 配置文件
├── include/ # C 语言头文件
├── jmods/ # JMOD 模块文件
├── legal/ # 法律声明
├── lib/ # 库文件
└── README.html # 说明文档
Java API 是 Java 开发的核心,它包含了数千个预定义的类和接口,组织在不同的包中。
| 功能分类 | 对应包 |
|---|---|
| 基础类库 | java.lang |
| 集合与工具 | java.util |
| 输入输出 | java.io |
| 数学运算 | java.math |
| 网络编程 | java.net |
| 数据库连接 | java.sql, javax.sql |
| 图形界面 | java.awt, javax.swing |
| 并发编程 | java.util.concurrent |
这是最基础的包,自动导入到每个 Java 程序中。
// String 类示例
String str = "Hello, JDK!";
System.out.println(str.length()); // 输出字符串长度
System.out.println(str.substring(7)); // 输出"JDK!"
包含集合框架、日期时间工具等。
// ArrayList 示例
import java.util.List;
import java.util.ArrayList;
List<String> list = new ArrayList<>();
list.add("Java");
list.add("JDK");
list.add("API");
System.out.println(list.get(1)); // 输出"JDK"
输入输出相关功能。
// 文件读写示例
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
try (BufferedReader reader = new BufferedReader(new FileReader("test.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
Java 类加载采用双亲委派模型:
类加载过程:
基本用法:
javac HelloWorld.java
常用选项:
-d:指定输出目录-cp 或 -classpath:指定类路径-verbose:输出详细编译信息基本用法:
java HelloWorld
常用选项:
-Xmx:设置最大堆内存(如 -Xmx512m)-Xms:设置初始堆内存-verbose:gc:输出 GC 详细信息查看字节码:
javap -c HelloWorld
启动 Java 监控和管理控制台:
jconsole
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, JDK!");
}
}
javac HelloWorld.java
java HelloWorld
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class DateExample {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
System.out.println("Today: " + today);
LocalDate nextWeek = today.plusWeeks(1);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
System.out.println("Next week: " + nextWeek.format(formatter));
}
}
A:生产环境建议选择 LTS 版本(如 Java 11 或 17),学习可以使用最新版本体验新特性。
A:这通常是因为只安装了 JRE 而没有安装 JDK,或者环境变量配置不正确。
A:使用命令:
java -XX:+PrintCommandLineFlags -version
A:使用 javac 的 -encoding 选项:
javac -encoding UTF-8 MyClass.java
JDK 是 Java 开发的基石,掌握其下载、安装和核心组件的使用是每个 Java 开发者的必备技能。本文从实践出发,详细介绍了 JDK 的各个方面,希望能帮助你顺利开始 Java 开发之旅。随着对 Java 的深入学习,你会发现 JDK 中还有更多强大的功能和工具等待探索。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online