JDK
Java Development Kit Java 开发工具包,包含 JRE(Java Runtime Environment、Java 虚拟机、基础类库)、编辑器 javac、调试&分析工具等
版本历史 & 选择
和 Node.js 类似,Java 也经历了动荡的发展过程,首先有三种类型 JDK
- JavaSE(Java Platform,Standard Edition)Java 标准版
- JavaME(Java Platform,Micro Edition)Java 微型版
- JavaEE(Java Platform,Enterprise Edition) JAVA 企业版
我们一般使用的是 JavaSE,最开始也是好好的 1.0 ~ 1.4 发版,2004 年发布的版本变化比较大,为了表示区分版本号为 5.0,但内部代号仍旧是 1.5,这样延续下来,我们说的 JDK 1.8 和 JDK 8 就是同样的含义了,但一般从 5.0 后就用 JDK 5 这样的称呼了
JDK 除了 Oracle JDK 作为官方的版本,开源社区、各个企业也都定制了自己的版本,同版本语言特性上没有区别,个人学习可以使用 AdoptOpenJDK。
OpenJDK 是 Java SE 平台版的开源和免费实现,提供了Java Platform 实现的源代码,更新频繁,实现快速迭代和高效试错,大多数JDK 都是在OpenJDK 的基础上编写、测试实现稳定 feature
- OracleJDK 官方版本,功能齐全,但 8u211 版本后改用 OTN 协议(Oracle Technology Network License Agreement)发布,允许个人研究使用,商业使用需要付费
- AdoptOpenJDK 是由 Java 社区的一些著名成员创建的组织,旨在为 Java 用户免费提供二进制版本和安装程序
- Alibaba Dragonwell 是 Alibaba 提供的免费 OpenJDK 发行版,主要特色是性能增强和安全修复
考虑到最大程度兼容企业现有程序代码,本书主要介绍 JDK8 支持的特性,所有 demo 也使用 JDK8 运行。
可能还有很多企业在使用 JDK 8,但考虑到 JDK 21 在性能、安全及虚拟线程、模式匹配增强等特性支持,加上 SpringBoot 3.x 开始最低 JDK 要求已经到了 JDK 17,同时 JDK 8 之后的升级语法并不剧烈,在教程中对于 JDK 8 之后新增的特性会做出版本标注。从 JDK 8 到 JDK 21,Java 平台对多个关键领域进行了优化:
- 函数式编程(JDK 8):通过Lambda表达式和Streams API,提升代码的简洁性和数据处理能力。
- 模块化系统(JDK 9):Project Jigsaw引入模块化机制,增强应用的封装性和可维护性。
- 类型推断(JDK 10):
var
关键字简化局部变量声明,提升代码可读性。 - 标准化HTTP客户端与字符串增强(JDK 11):现代化的HTTP Client API和丰富的字符串处理方法,提高开发效率和代码质量。
- 垃圾收集器优化(JDK 9-21):持续优化ZGC和Shenandoah GC,提升垃圾收集的性能和低延迟表现。
- Switch语句的优化(JDK 12-21):通过Switch表达式和模式匹配,增强Switch语句的表达力和灵活性。
- 模式匹配与文本块(JDK 12-16):通过模式匹配简化类型检查和解构操作,文本块支持多行字符串,提升代码可读性。
- 记录类与密封类(JDK 14-17):简化数据类创建,控制继承层次,增强语言表达能力和安全性。
- 并发编程新模型(JDK 19-21):虚拟线程和结构化并发极大简化高并发编程,提升应用性能和可扩展性。
- 外部内存访问API(JDK 16-21):提供更安全、高效的方式与外部C库交互,替代传统的JNI方法。
安装
在 adoptium.net/zh-CN/marke… 可以下载 AdoptOpenJDK 各平台 JDK 的 GUI 安装包
2021.07.24 开始 AdoptOpenJDK 迁移到 Eclipse Foundition,品牌也改为 temurin
环境变量配置
Mac
使用 /usr/libexec/java_home -V
命令可以查看 Java 安装目录,在 ~/bashrc 或 ~/.zshrc 文件添加内容
export JAVA_HOME=$(/usr/libexec/java_home) # 也可以写命令输出的内容
export PATH=$JAVA_HOME/bin:$PATH:.
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
Wndows
Windows 下可以通过可视化界面添加 JAVA_HOME、CLASSPATH 变量,编辑 PATH 变量
- 打开环境变量设置:右键点击 “此电脑”,选择 “属性”,点击 “高级系统设置”。在 “系统属性” 窗口中,点击 “环境变量”。
- 配置 JAVA_HOME:在 “系统变量” 区域,点击 “新建”。变量名输入 “JAVA_HOME”,变量值输入 JDK 21 的安装路径,例如 “C:\Program Files\Java\jdk-21”。点击 “确定” 保存。
- 配置 CLASSPATH:点击 “新建”。变量名输入 “CLASSPATH”,变量值输入
.;%JAVA_HOME%\lib\tools.jar
。点击 “确定”。 - 配置 Path:在 “系统变量” 中找到 “Path” 变量,点击 “编辑”。点击 “新建”,添加
%JAVA_HOME%\bin
,并将其移到最上方。点击 “确定” 保存。
在 Terminal 输入 java --version
测试
IntelliJ IDEA
大部分 Java 开发者反馈 IntelliJ IDEA 比 Eclipse 好用,官网直接下载即可,如果觉得定价较贵可以使用社区版,学生、教学等可以申请免费使用
安装完成后新建 maven-archetype-quickstart
类型项目,最简单的 Hello World 就被初始化好了
package org.example;
public class App {
public static void main( String[] args ) {
System.out.println( "Hello World!" );
}
}
点击 IntelliJ IDEA 右上角的运行键,可以看到 Hello World! 被打印到控制台