Java 基础(一):发展历程、技术体系与 JDK 环境搭建
本文介绍 Java 语言的发展历程,从 Oak 命名到 Oracle 收购。详细解析 Java 技术体系,包括 SE、EE、ME 三大平台及其关系。阐述 Java 跨平台机制及 JVM 核心原理。最后指导 JDK 环境搭建,区分 JDK 与 JRE 组成,并说明 JAVA_HOME、CLASSPATH、PATH 等关键环境变量的作用与配置方法,帮助开发者快速上手 Java 开发环境。

本文介绍 Java 语言的发展历程,从 Oak 命名到 Oracle 收购。详细解析 Java 技术体系,包括 SE、EE、ME 三大平台及其关系。阐述 Java 跨平台机制及 JVM 核心原理。最后指导 JDK 环境搭建,区分 JDK 与 JRE 组成,并说明 JAVA_HOME、CLASSPATH、PATH 等关键环境变量的作用与配置方法,帮助开发者快速上手 Java 开发环境。

Java 最初由 Sun 公司的'Green'项目组开发,用于智能家电设备,最初名为 Oak。因商标问题,1995 年更名为'Java'(灵感源于印尼爪哇岛的咖啡)。
| 发行版本 | 发行时间 | 发行的各版本及其特征 |
|---|---|---|
| Java | 1995 年 | Java 语言诞生 |
| Java 1.0 | 1996 年 | 首个正式版本,包含基础类库和 Applet 支持 |
| Java 1.1 | 1997 年 | 引入内部类(Inner Class)、Java Beans、JDBC(数据库连接)和反射 API |
| Java 1.2 | 1998 年 | JDK 1.2 发布,更名为 Java 2,分为三个平台:J2SE(标准版)、J2EE(企业版)、J2ME(微型版) |
| Java 1.3 | 2000 年 | 引入 HotSpot JVM、JNDI(Java 命名与目录接口) |
| Java 1.4 | 2002 年 | 新增正则表达式、断言(Assert)、NIO(非阻塞 I/O)和日志 API |
| Java 5.0 | 2004 年 | 引入泛型、注解、枚举等革命性特性,为强调版本重要性,Sun 将内部版本号 1.5 公开命名为 5.0,此后版本号逐渐简化 |
| Java 6.0 | 2006 年 | Sun 将产品线更名为 Java SE/EE/ME,终结'J2'前缀,并宣布开源(OpenJDK) |
| 2009 年 | Oracle 以 74 亿美元收购财务困境的 Sun 公司,Java 正式归属 Oracle | |
| Java 7.0 | 2011 年 | Oracle 首个大版本,支持菱形语法、多异常捕获,但因收购过渡期特性较少 |
| Java 8.0 | 2014 年 | 继 JDK 5 后最大更新,引入 Lambda 表达式、Stream API、新日期时间库。LTS(长期支持)版本 |
| Java 9.0 | 2017 年 | 发布周期改为每半年发布一次版本,每三年推出 LTS(长期支持)版本 |
| Java 10.0 | 2018 年 | 废弃'1.x'格式,直接使用主版本号(如 JDK 10 而非 JDK 1.10)Java EE 移交 Eclipse 基金会,重命名为 Jakarta EE(如包名从 javax.改为 jakarta.) |
| Java 11.0 | 2018 年 | 新增 HTTP 客户端 API、局部变量类型推断(var)并移除部分过时功能。LTS(长期支持)版本 |
| … | … | |
| Java21.0 | 2023 年 | 被视为继 Java 8 后的新一代主流版本,生态支持(如框架适配率)快速提升。LTS(长期支持)版本 |
Java 虚拟机机制屏蔽了底层运行平台的差别,实现了'一次编译,到处运行'。
例如,当 Windows 平台上 JDK 的安装目录为'C:\java\jdk8'时,设置如下所示
JAVA_HOME=C:\java\jdk8
环境变量 CLASSPATH 的值一般为一个以分号';'作为分隔符的路径列表,设置如下
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
这样可以在命令行中直接使用 java 和 javac 命令,而不需要指定完整路径,否则就会出现以下错误:
执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。例如:
PATH=.;%JAVA_HOME%\bin;

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 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