本文为环境大件课程的笔记,课程地址后台开发常用的开发环境搭建
环境搭建都是很简单的,这个文章记录一下,方便大家找到下载的地址
Java 是一门历史比较悠久的编程语言,最早由 Sun Microsystems(Sun 公司) 开发。
Java 项目开始于 1991 年,最初由 James Gosling(詹姆斯·高斯林)等人在 Sun 公司内部开发。当时这门语言主要面向电视、机顶盒等嵌入式设备,最初的名字叫做 Oak。
后来随着互联网的发展,Sun 公司发现 Java 非常适合开发跨平台的网络应用,于是在 1995 年正式发布 Java。
Java 有一个非常重要的设计理念:
Write Once, Run Anywhere(一次编写,到处运行)
Java 程序并不是直接编译成某个操作系统能够执行的机器代码,而是先编译成 Java 字节码(Bytecode),再由不同平台上的 **JVM(Java Virtual Machine,Java 虚拟机)**负责执行。
因此,只要对应的平台安装了 JVM,同一份 Java 程序通常就可以运行在 Windows、Linux、macOS 等不同操作系统上。
Java 最初属于 Sun 公司。2010 年,Oracle(甲骨文)完成了对 Sun Microsystems 的收购,Java 也因此进入 Oracle 时代。
不过 Java 并不等于 Oracle JDK。
Java 的主要开源实现是 OpenJDK,现在我们使用的很多 JDK 发行版实际上都是基于 OpenJDK 构建的,例如 Oracle JDK、Eclipse Temurin、Amazon Corretto 等。
Java 发展至今已经发布了很多版本,其中比较有代表性的版本包括:
虽然 Java 已经诞生三十多年,但目前仍然是主流的编程语言之一,在后端服务、企业级应用、大数据等领域都有非常广泛的应用。
了解完 Java 的基本历史之后,接下来我们就可以正式开始搭建 Java 开发环境了。
为什么要讲上面的内容呢?就是要说明下载地址,和商业授权的事情,决定我们怎么下载。
前面提到sun公司,所以www.sun.com也是一个入口,但是这个入口会自动跳转到[www.oracle.com](http://www.java.com/)
现在最快的方式就是www.java.com了,直接跳转到主页

点击开发人员下载,就跳转到下载页面了


但是,看到锁了吗?是的,需要登录才可以的。关于java版本的授权参考如下:

OTN 到底意味着什么?它允许很多场景免费使用,例如:
所以,个人开发是没有问题的,那么不想注册账号登录,怎么搞呢?
OpenJDK,看一下OpenJDK和ORACLE JDK的区别

OpenJDK下载,https://jdk.java.net/archive/
Java 发展至今已经经历了很多版本。对于普通开发者来说,并不需要了解每一个版本,重点关注 Java 8、Java 11、Java 17、Java 21 和 Java 25 即可,这几个版本都是具有代表性的 LTS(Long-Term Support,长期支持)版本。
Java 8 发布于 2014 年,可以说是 Java 发展历史上影响最大的版本之一。
它带来了很多现在已经习以为常的功能,例如:
<span>Optional</span>;<span>LocalDateTime</span>。例如 Java 8 之后,我们可以使用 Lambda:
list.forEach(item -> System.out.println(item));
也可以使用 Stream 对集合进行处理:
List<String> result = list.stream()
.filter(item -> item.startsWith("A"))
.collect(Collectors.toList());
Lambda 和 Stream 的引入让 Java 开始拥有更加完善的函数式编程能力。
Java 8 在企业项目中的影响非常大,即使到了今天,仍然能够看到大量基于 Java 8 开发的老项目。
Java 11 发布于 2018 年,是 Java 8 之后非常重要的一个 LTS 版本。
从 Java 9 开始,Java 改为了大约 每 6 个月发布一个新版本,因此 Java 8 → Java 11 中间实际上还经历了 Java 9 和 Java 10。
这一阶段比较重要的变化包括:
<span>var</span>;<span>.java</span> 源文件;例如:
var name = "Java";
System.out.println(name);
需要注意的是,<span>var</span> 并不是把 Java 变成了动态类型语言,变量依然具有确定的类型,只是由编译器帮助我们进行类型推断。
Java 11 可以看作 Java 从早期版本逐渐进入现代 Java 的一个重要节点。
Java 17 发布于 2021 年,同样是一个非常重要的 LTS 版本。
从 Java 11 到 Java 17,又陆续加入了很多现代 Java 语言特性,其中比较值得关注的包括:
<span>instanceof</span> 模式匹配;例如传统的数据对象可能需要写很多代码:
public class User {
private String name;
private Integer age;
// constructor
// getter
// setter
// equals
// hashCode
// toString
}
使用 <span>record</span> 可以简化为:
public record User(String name, Integer age) {
}
Java 17 还正式加入了 Sealed Classes,可以限制哪些类允许继承某个类或实现某个接口。
Java 17 是目前很多从 Java 8 / Java 11 升级的企业项目会遇到的重要版本。
Java 21 发布于 2023 年,是 Java 17 之后的 LTS 版本。
这一阶段 Java 继续向现代语言特性和高并发方向发展,比较值得关注的功能包括:
<span>switch</span>;其中最受关注的功能之一就是 虚拟线程(Virtual Threads)。
传统 Java 服务通常使用平台线程:
Thread thread = new Thread(() -> {
// 执行业务
});
thread.start();
Java 21 可以创建非常轻量的虚拟线程:
Thread.startVirtualThread(() -> {
// 执行业务
});
虚拟线程由 JVM 进行调度,可以以更低的线程成本处理大量并发任务,尤其适合大量任务处于 I/O 等待状态的服务器程序。Virtual Threads 在 Java 21 中正式成为标准功能。
Java 21 还进一步完善了模式匹配,例如 Record Patterns 和 <span>switch</span> Pattern Matching,使 Java 在处理不同类型的数据时更加简洁。
Java 25 发布于 2025 年,是继 Java 21 之后的新一个 LTS 版本。
Java 25 继续完善现代 Java 的语言特性、并发模型以及 JVM,其中比较值得关注的变化包括:
<span>main</span> Methods;例如 Java 25 正式加入了 Module Import Declarations,可以直接导入一个模块导出的包:
import module java.base;
从而减少大量单独的 <span>import</span>。
同时 Java 25 进一步降低了编写简单 Java 程序的门槛。对于一些简单程序,不再一定需要从传统的:
public class Main {
public static void main(String[] args) {
System.out.println("Hello Java");
}
}
这种完整结构开始学习 Java,而可以使用更加简洁的程序结构。
这些变化对大型企业项目的代码结构影响可能没有 Java 8 的 Lambda 或 Java 21 的虚拟线程那么明显,但可以看出 Java 正在逐渐降低语言本身的入门门槛。
简单总结一下:
| Java 版本 | 发布时间 | 代表性变化 |
|---|---|---|
| Java 8 | 2014 | Lambda、Stream、新日期 API、Optional |
| Java 9 | 2017 | 模块化系统 JPMS、JShell |
| Java 10 | 2018 | <span>var</span> |
| Java 11 | 2018 | HTTP Client、单文件运行、API 增强 |
| Java 12~16 | 2019~2021 | Switch 表达式、Text Blocks、Record、模式匹配等逐步加入 |
| Java 17 | 2021 | Sealed Classes,并汇集 Record、Text Blocks 等现代特性 |
| Java 18~20 | 2022~2023 | Virtual Threads、模式匹配等功能持续预览和完善 |
| Java 21 | 2023 | Virtual Threads、Record Patterns、Switch Pattern Matching |
| Java 22~24 | 2024~2025 | 并发、语言语法、FFM API 等继续演进 |
| Java 25 | 2025 | Module Import、Compact Source Files 等,继续完善现代 Java |
如果只是从学习 Java 和开发企业级项目的角度来看,可以重点记住:
Java 8 → Java 11 → Java 17 → Java 21 → Java 25
其中 Java 8 是现代 Java 的一个重要起点;Java 11 是 Java 8 之后的重要过渡版本;Java 17 开始大量使用更加现代的 Java 语言特性;Java 21 的虚拟线程对服务端并发编程具有重要意义;Java 25 则是目前最新一代 LTS 版本。
现在主要是用Java17的多,为什么这里会强调版本呢?一是考虑到第三方库,要求是高的版本了。当然,如果全用Java8是没问题的,配套的库支持就行。
安装是很简单的,直接下载,傻瓜式安装就好。
这里以Java17为例子,我从OpenJdk下载页面
https://jdk.java.net/archive/

下载完就去安装吧,我晚点再补充,我这个电脑上已经有了,我又不想卸载。我用另外一个电脑安装给大家看。
安装完以后,在命令行执行:

这样子,java就有了。如果没有这个输出,出现未找到命令之类的,就是环境变量没有配置好。
也就是告诉系统我们的java安装在了哪个目录。





















