Java 开发 快速上手
基本概念
Java 语言/Java SE/JDK/JRE
首先我们得搞清楚下面这几个名词的概念:
🔶 Java 语言 是一种编程语言规范(语法 + 语义)
✅ Java SE (Java Standard Edition) 是“语法规则 + 标准类库 + 运行规范”的完整平台。写 Java 程序时你实际用到的 90% 东西都不是纯语言,而是 Java SE 提供的类库。
// 下面每一行都属于 Java SE 提供的标准类库,不是语言本身
import java.util.List; // Java SE
import java.time.LocalDate; // Java SE
import java.net.http.HttpClient; // Java SE(Java 11 引入)
record Person(String name, int age) { } // ← 这才是纯 Java 语言特性(Java 16)
public static void main(String[] args) {
var now = LocalDate.now(); // var 是语言特性,LocalDate 是 Java SE 类库
System.out.println(now); // System.out 是 Java SE 提供的
}
所以:我们嘴上经常说的 Java 语言,实际上指的就是这个 Java SE 开发规范,而不是单纯的 Java 语法规范。
Java SE 语言规范是由一个叫 JCP(Java Community Process) 的组织来制定和维护。
Oracle 公司(作为 Java 的拥有者)是 这个组织的主要推动者,提出 90% 以上的 JSR(Java Specification Request),牵头编写规范。
其它公司(Red Hat、IBM、SAP、Microsoft、Google 等)参与制定。
Oracle 拥有 Java 商标拥有者 + JCP 最终否决权 ,所以语言规范最终是 Oracle 说了算。
✅ JDK (Java Development Kit) 是开发和运行Java 语言的官方工具集合。
Java SE 是“规范和标准”,而 JDK 是“这个规范的参考实现 + 开发工具包”。
简单说:
- Java SE = 纸上的规则(你必须遵守什么)
- JDK = 实际能拿来干活的工具 + 实现(Oracle/OpenJDK 提供的官方工具箱)
没有 JDK 你写不了、编译不了、运行不了 Java 程序,所以你要编译和运行代码必须安装一个 JDK。
🔶 JRE (Java Runtime Environment) 是运行Java 语言(编译出来的.class 文件)的环境,不能开发和编译java语言的代码。 它是 JDK 的子集。现在 JRE 基本退出历史舞台了,所有人(包括只想运行程序的人)都直接装一个 JDK 就够了。
JDK 版本 和 Java 语言版本的关系
Java 语言版本(即 Java SE) 和 JDK 都是 有版本的。
下面是各版本发布时间表:
| 发布年月 | JDK 版本号 | 对应的 Java SE 版本 | 是否 LTS | 备注 |
|---|---|---|---|---|
| 2014.03 | JDK 8 | Java SE 8 | 是(经典 LTS) | |
| 2017.09 | JDK 9 | Java SE 9 | 否 | 从此版本号彻底对齐 |
| 2018.03 | JDK 10 | Java SE 10 | 否 | |
| 2018.09 | JDK 11 | Java SE 11 | 是(LTS) | |
| 2019.03 | JDK 12 | Java SE 12 | 否 | |
| 2019.09 | JDK 13 | Java SE 13 | 否 | |
| 2020.03 | JDK 14 | Java SE 14 | 否 | |
| 2020.09 | JDK 15 | Java SE 15 | 否 | |
| 2021.03 | JDK 16 | Java SE 16 | 否 | |
| 2021.09 | JDK 17 | Java SE 17 | 是(目前企业主流 LTS) | |
| 2022.03 | JDK 18 | Java SE 18 | 否 | |
| 2022.09 | JDK 19 | Java SE 19 | 否 | |
| 2023.03 | JDK 20 | Java SE 20 | 否 | |
| 2023.09 | JDK 21 | Java SE 21 | 是(LTS) | |
| 2024.03 | JDK 22 | Java SE 22 | 否 | |
| 2024.09 | JDK 23 | Java SE 23 | 否 | |
| 2025.03 | JDK 24 | Java SE 24 | 否 | 已发布 |
| 2025.09 | JDK 25 | Java SE 25 | 是(当前最新 LTS) | 当前最新版本 |
🔰如何查看当前运行环境的版本?
java -version
# 示例输出(JDK 21):
java version "21.0.2" 2024-01-16 LTS
# 示例输出(JDK 17):
java version "17.0.12" 2023-07-18 LTS
目前,Java SE 每6个月出一个新版本,语言特性随之更新
目前,JDK 版本号和 Java 语言特性版本号基本保持一致了,JDK 版本号 就等于 Java 语言特性版本号
比如你装了 JDK 21,里面默认支持的语法就是 Java 21 的语法。最高能用 Java 21 语法。
一个 JDK 也可以通过参数支持更老版本的 Java 语言(向下兼容)。
比如:你装了 JDK 21,可以通过参数编译成更老的版本:
javac -source 8 -target 8 Hello.java # 编译成 Java 8 兼容的字节码
javac --release 17 Hello.java # Java 9+ 推荐方式
其中 8,11,17,21, 25 这4个版本,都是 LTS (Long-Term Support)版本, 也就是 长期支持版 ,提供长达数年的安全更新、Bug 修复和兼容性保障,无功能新增,确保企业系统的长期稳定运行。
而非LTS版,通常只提供半年左右。所以企业开发基本都是 使用 LTS 版本。
目前推荐版本(2025 年 11 月):
- 最稳妥的企业生产环境:Java 17(上一个 LTS)或 Java 21(当前最新 LTS)
- 追求最新特性:Java 25(最新功能版本)
- 仍然大量在用:Java 8(很多老系统还在跑,2025 年后官方支持已彻底结束,但 OpenJDK 社区版还有更新)
2025 年,企业中 Java 17 的采用率达 61%,已成为事实标准(从 2023 年的 9% 爆炸式增长)。
它平衡了稳定性和现代特性(如记录类、文本块),支持时长至 2029-2031 年(视厂商)。
Java 21(LTS)紧随其后(45% 采用率),适合追求虚拟线程等新功能的团队。
JDK 发行版
开发Java程序,必须先安装 JDK 开发包 。
但是 JDK 不是天上掉下来的,是由需要组织企业来开发实现的。
JCP 组织确定了 新版本 JavaSE 规范过程中,一个叫 OpenJDK 的开源社区(由 Oracle 发起,Red Hat、IBM、Apple、SAP、Azul、Microsoft、Amazon 等公司工程师共同维护) 会同步实现具体的 OpenJDK 开发包
所以,它和 “JCP 正式通过规范” 几乎是同步完成的。OpenJDK 开发包都是首先(也是最快、最完整)实现新版本的 Java SE 规范
Oracle 既是 JCP 的最大推动者(提 90% 的 JSR),又是 OpenJDK 最大的代码贡献者(占 70–80% 提交)
这个OpenJDK 社区的“最原始发行版”(指官方从 https://jdk.java.net/ 下载的二进制构建)是免费的、直接可用的。
但它更适合开发者测试或短期使用,因为:支持时长短,平台支持有限(主要 x64 Linux/Windows/macOS,少 ARM),性能优化少,测试少等等, 它更像一个快速预览版。
各JDK 厂商/社区 会基于 OpenJDK(开源项目)构建自己的发行版,提供优化、更多的测试 更长期的补丁支持,并且更多平台发布包。
所以企业基本会选用这些厂商的发行版,而不是 OpenJDK 社区的“原始发行版”。
这些发行版底层源码 99.9% 都来自同一个 OpenJDK 仓库, 100% 兼容 Java SE 规范(通过 TCK 测试)。
功能上几乎无差异,只是编译参数不同,加了不同的补丁/优化。主要区别在于支持时长、许可和商业支持不同。
我们日常使用这些不同发行版,感觉上几乎没有什么差别。
其中 Oracle JDK 是官方商业版,但许可费用高。
根据 2025 年的最新行业报告:
Oracle JDK 的市场份额持续下降(从 2020 年的 75% 降至 2024 年的 21%),
而社区驱动的发行版(如 Eclipse Temurin 和 Amazon Corretto)主导市场。
其中 Eclipse Temurin(Eclipse Adoptium 项目)2024 年其市场份额达 18%(YoY 增长 50%,从 12% 上升),在 2025 年继续领跑企业采用率(预计 20-25%)。
它被视为“中立、可靠的事实标准”,广泛用于容器/K8s 环境,支持多平台(ARM、RISC-V 等),并通过 TCK 和 AQAvit 测试。
目前 Java开发最热门的IDE IntelliJ IDEA 安装时自带内置 JDK 就是 Eclipse Temurin。
安装 IDE/JDK
IntelliJ IDEA 是 Java 开发的最推荐 IDE,使用率高达 84%,远超其他工具,所以IDE 我们就使用它 。
然后点击下载安装即可。
刚安装的用户有30天的 Pro 版试用,试用期结束后,可以当普通版使用,基本也够用了。
IntelliJ IDEA安装包内置 JBR(JetBrains Runtime) 版本的JDK。这是 Temurin JDK 的 JetBrains 修改版。
安装完 IDEA 的那一刻,就自动在你电脑上了,2025年内置的 JDK版本是 21。 如果这就是你需要的JDK版本,可以直接使用它。
JetBrains 官方说明:JBR 是用来跑 IDE 的,不强迫你项目也用它。
所以,新建项目时,候选JDK列表里面,缺省不会显示。
如果你想要使用它,需要手动添加JDK选择它。
如果你要使用其它版本的JDK,需要下载安装。
✳️ 安装JDK
🔸 方法1:去JDK发行版的官网下载
可以去各大 JDK 发行版官网下载需要的 JDK 版本。
比如: 点击这里,到Temurin官网,下载安装 JDK25
安装过程很简单,基本一路 下一步 就可以了。
🔸 方法2:在IDEA中安装
可以直接在 IDEA 里面安装 JDK。
点击菜单栏的 File -> Project Structure...;
然后选择左侧的 Platform Settings -> SDKs;
然后点击上方的 + 号,选择 Download JDK,会弹出一个对话框;
在弹出的对话框中,选择你想安装的
Version: JDK 版本(比如 17、21、25 等),
Vendor:JDK 发行版(比如 Temurin、Amazon Corretto、GraalVM 等),
然后点击 Download 按钮,IDEA 会自动下载安装好 JDK。
开发运行示例
在 IDEA 里面新建一个项目,在 New Project 对话框中,语言选择 java,
Name:项目名称可以添加 hello;
Location 路径选择一个合适的路径,作为项目的存储位置;
Build system 保持缺省选择 Intellij;
虽然 Maven 或 Gradle才是企业项目常用的构建工具。
但是,目前我们是Java 初学者,先不需要搞的那么复杂。
等后面 做项目锻炼时,再使用它们。
JDK 选择你刚才安装的 JDK 版本,教程这里,我们选择 25 版本的 JDK;
选择 Java 25 是因为:它是目前最新的 LTS 版本,支持最新的语言特性。
有些新特性,比如精简源文件等,对初学者循序渐进学习很有帮助。
不要勾选 Add sample code;
可以手动让项目使用 IDEA 自带的 Temurin JDK:
-
点JDK路径右边的下拉图标, Add SDK from Disk
-
选择下面的路径:
- Windows:
C:\Program Files\JetBrains\IntelliJ IDEA 2025.2.5 \jbr - macOS:
/Applications/IntelliJ IDEA.app/Contents/jbr - Linux:你解压的 IDEA 目录下的
jbr
- Windows:
-
点确定,会显示类似:
JetBrains Runtime 21.0.9 -
以后所有新项目都会默认出现这个选项了
接下来在 src 目录下,新建一个 Main.java 文件,里面填写下面的代码:
void main() {
System.out.println("Hello, 白月黑羽!");
}
这个代码中,定义了一个 main 方法(函数),它是程序的入口点。
每个 Java 应用程序都必须有一个 main 方法,JVM 会从这里开始执行代码。
System.out.println("Hello, 白月黑羽!"); 这行代码用于在控制台(命令行窗口)输出文本。
然后,直接点击 标题栏的 运行按钮, 发现可以输出内容为
Hello, 白月黑羽!
注意,上面这种代码的写法,是从 Java 25 开始支持的一种更简洁的写法,叫 紧凑源文件(compact source file)
如果你选择老版本的 JDK,比如 Java 17 或 Java 11,上面的代码会报错。
你必须使用类。
删除掉刚才创建的 Hello.java 文件,
然后在 src 目录下,新建一个 Java Class, 名为 Main ,
会自动产生 Main.java 文件,里面填写下面的代码:
public class Main {
public static void main(String[] args) {
System.out.println("Hello, 白月黑羽!");
}
}
其中:
public class Main:定义了一个公开的类,类名为Main。Java 程序的基本构建块是类。
注意:Java 代码文件名必须和 Public 的类名完全一致,包括大小写,否则会编译报错。 这里叫 Main.java,类名也必须叫 Main。
public static void main(String[] args) 定义了程序的入口方法 main。和前面一样,JVM 会从这里开始执行代码。
关于 类,属性,方法 等概念,我们后面会详细介绍。
这里我们只要知道,Java 程序是由类组成的,程序的执行从 main 方法开始就可以了。
✳️ 命令行运行
如果你不使用IDE(在一个没有IDE的环境中),怎么运行 Java 代码呢?
从 Java 11 开始,这种 Java 文件,可以直接用 java 命令运行它,跳过显式的编译步骤.
打开命令行窗口,进入到 Main.java 所在目录,运行:
java Main.java
也可以在项目根目录运行:
java src/Main.java
这对于写简单的脚本或测试代码非常方便。
如果你使用的是老版本的JDK, 你需要先用 javac 命令编译成字节码文件 .class,然后再用 java 命令运行。
javac Main.java # 编译,生成 Main.class 文件
java Main # 运行 Main.class 文件
关于 编译和运行的命令 javac 和 java ,我们后面会详细介绍。