Java发展史及版本详细说明

news2025/4/25 19:14:34

Java发展史及版本详细说明

在这里插入图片描述


1. Java 1.0(1996年1月23日)
  • 核心功能
    • 首个正式版本,支持面向对象编程、垃圾回收、网络编程。
    • 包含基础类库(java.langjava.iojava.awt)。
    • 支持Applet(浏览器嵌入的小程序)。
  • 关键特性
    • 跨平台(Write Once, Run Anywhere)。
    • 基础集合类(VectorHashtable)。
    • AWT(Abstract Window Toolkit,用于GUI开发)。

2. Java 1.1(1997年2月19日)
  • 核心功能
    • 引入内部类(Inner Classes)。
    • 增强GUI支持(Swing框架的前身)。
  • 关键特性
    • Reflection(反射机制)。
    • RMI(Remote Method Invocation,远程方法调用)。
    • JDBC(数据库连接)的早期版本。

3. Java 1.2(Java 2, 1998年12月8日)
  • 核心功能
    • 正式更名为Java 2,分为三个平台:J2SE(标准版)、J2EE(企业版)、J2ME(微型版)。
    • 引入集合框架(java.util.Collections)。
  • 关键特性
    • Swing GUI框架(替代AWT)。
    • 校验编译器(javac改进)。
    • 严格的异常处理(必须声明或捕获检查型异常)。

4. Java 1.3(2000年5月8日)
  • 核心功能
    • 增强JIT编译器性能。
    • 引入日志框架(java.util.logging)。
  • 关键特性
    • HotSpot JVM(Oracle的高性能JVM)。
    • 音频API(javax.sound)。

5. Java 1.4(2002年2月6日)
  • 核心功能
    • 正则表达式(java.util.regex)。
    • 遍历器模式(Iterator)。
  • 关键特性
    • Assertion(断言,assert关键字)。
    • 集成Apache的XML解析库(javax.xml)。

6. Java 5(Java 5.0, 2004年9月30日)
  • 核心功能
    • 重大升级,引入多项语法和功能革新。
  • 关键特性
    • 泛型(Generics)。
    • 枚举(Enums)。
    • 注解(Annotations,如@Override)。
    • 自动装箱/拆箱(Autoboxing/Unboxing)。
    • 增强for循环for-each)。
    • 可变参数(Varargs)。
    • Concurrent包java.util.concurrent,多线程优化)。

7. Java 6(2006年12月11日)
  • 核心功能
    • 改进性能和兼容性。
  • 关键特性
    • Scripting API(支持JavaScript等脚本语言)。
    • Pluggable Annotation(自定义注解处理器)。
    • JDBC 4.0(支持类型安全查询)。
    • Drag-and-Drop API

8. Java 7(2011年7月28日)
  • 核心功能
    • 语法和API的进一步简化。
  • 关键特性
    • Try-with-resources(自动资源管理)。
    • 钻石操作符<>推断泛型类型)。
    • NIO 2.0(增强文件系统API,java.nio.file)。
    • Switch支持字符串(预览功能)。
    • Fork/Join框架(并行任务处理)。

9. Java 8(2014年3月18日)
  • 核心功能
    • 函数式编程支持,引发Java生态巨大变革。
  • 关键特性
    • Lambda表达式->语法)。
    • Stream API(集合数据处理)。
    • 默认方法(接口中的默认实现)。
    • 新的日期时间APIjava.time包)。
    • Optional类(避免空指针异常)。
    • 重复注解(@Repeatable)。

10. Java 9(2017年9月21日)
  • 核心功能
    • 模块化系统(JPMS),Java首次引入模块化。
  • 关键特性
    • Jigsaw项目(模块化JDK,module-info.java)。
    • JShell(交互式命令行工具)。
    • HTTP客户端java.net.http)。
    • 私有接口方法(接口内部可见方法)。
    • 集合工厂方法List.of()等不可变集合)。

11. Java 10(2018年3月20日)
  • 核心功能
    • 短期发布周期(每6个月一次)的首个版本。
  • 关键特性
    • 局部变量类型推断var关键字)。
    • 垃圾回收器改进(G1成为默认GC)。
    • 并行Full GC(ZGC的预览)。

12. Java 11(2018年9月25日,LTS)
  • 核心功能
    • 长期支持(LTS)版本,企业级首选。
  • 关键特性
    • Epsilon垃圾收集器(无操作GC,用于测试)。
    • HTTP客户端正式版(Java 9的预览功能升级)。
    • Unicode 8.0支持
    • Deprecate Nashorn引擎(JavaScript引擎)。

13. Java 14(2020年3月17日)
  • 核心功能
    • 预览特性的快速迭代。
  • 关键特性
    • Records(数据类,预览)。
    • Switch表达式(表达式式switch,预览)。
    • Pattern Matching for instanceof(预览)。
    • 文本块(多行字符串,"""语法)。

14. Java 15(2020年9月15日)
  • 核心功能
    • 增强预览特性
  • 关键特性
    • Records正式版
    • 文本块正式版
    • 隐藏类jdk.internal.vm.hidden)。
    • 密封类sealed,预览)。

15. Java 16(2021年3月16日)
  • 核心功能
    • 新特性正式化
  • 关键特性
    • 密封类正式版
    • 弃用remove()方法(集合的remove()改为removeIf())。
    • Vector API(Incubator)(SIMD指令支持)。
    • 模式匹配增强instanceof与类型匹配结合)。

16. Java 17(2021年9月14日,LTS)
  • 核心功能
    • LTS版本,企业长期支持。
  • 关键特性
    • Sealed Classes正式版
    • Switch表达式正式版
    • 移除Java EE模块(如java.xml.bind)。
    • 强封装JDK内部API--add-opens)。
    • Pattern Matching for instanceof正式版

17. Java 18(2022年3月15日)
  • 核心功能
    • 改进性能和可维护性
  • 关键特性
    • 虚拟线程(Virtual Threads)(预览,轻量级线程)。
    • 结构化并发框架StructuredConcurrent API)。
    • 模式匹配switchswitch支持类型匹配)。

18. Java 19(2022年9月19日)
  • 核心功能
    • 语言和API优化
  • 关键特性
    • 虚拟线程(Virtual Threads)第二版(改进调度)。
    • 结构化并发增强StructuredConcurrent改进)。
    • 记录模式(Record Patterns)(解构record数据)。

19. Java 20(2023年3月21日)
  • 核心功能
    • 性能和工具改进
  • 关键特性
    • 虚拟线程(Virtual Threads)正式版
    • 强封装JDK内部API增强--illegal-access)。
    • 模式匹配switch正式版
    • Vector API第二版(SIMD优化)。

表格总结:Java版本关键特性对比

版本发布时间LTS核心特性关键功能
Java 1.01996年1月首个版本跨平台、基础类库、Applet支持
Java 1.11997年2月内部类、反射、RMI增强GUI和网络功能
Java 1.21998年12月Java 2命名、集合框架、SwingGUI现代化、模块化结构
Java 52004年9月泛型、注解、枚举、增强for循环语法革新,奠定现代Java基础
Java 82014年3月Lambda、Stream API、新日期API函数式编程支持,生态转折点
Java 92017年9月模块化系统(JPMS)、JShell模块化JDK,开发工具增强
Java 112018年9月HTTP客户端正式版、Epsilon GC长期支持,企业级首选
Java 142020年3月Records、文本块、Switch表达式预览预览特性快速迭代
Java 172021年9月Sealed Classes、Switch表达式正式版、移除Java EE模块企业级LTS,语法和API现代化
Java 202023年3月虚拟线程正式版、模式匹配switch正式版并发性能提升,SIMD优化

关键总结

  • LTS版本:Java 8、11、17 是企业长期支持版本。
  • 核心演进
    • 语法革新:从Java 5的泛型到Java 8的Lambda,再到Java 14的Records。
    • 并发优化:Java 8的CompletableFuture到Java 17的虚拟线程。
    • 模块化:Java 9的JPMS彻底改变JDK结构。
    • 性能提升:G1 GC、ZGC、Vector API等持续优化。
  • 未来方向:虚拟线程(轻量级并发)、模式匹配、结构化并发框架的进一步发展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2342646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

React 5 种组件提取思路与实践

在开发时,经常遇到一些高度重复但略有差异的 UI 模式,此时我们当然会把组件提取出去,但是组件提取的方式有很多,怎么根据不同场景选取合适的方式呢?尤其时在复杂的业务场景中,组件提取的思路影响着着代码的可维护性、可读性以及扩展性。本文将以一个[详情]组件为例,探讨…

[java八股文][Java基础面试篇]I/O

Java怎么实现网络IO高并发编程&#xff1f; 可以用 Java NIO &#xff0c;是一种同步非阻塞的I/O模型&#xff0c;也是I/O多路复用的基础。 传统的BIO里面socket.read()&#xff0c;如果TCP RecvBuffer里没有数据&#xff0c;函数会一直阻塞&#xff0c;直到收到数据&#xf…

数据结构-冒泡排序(Python)

目录 冒泡排序算法思想 冒泡排序算法步骤 冒泡排序代码实现 冒泡排序算法分析 冒泡排序算法思想 冒泡排序&#xff08;Bubble Sort&#xff09;基本思想&#xff1a; 经过多次迭代&#xff0c;通过相邻元素之间的比较与交换&#xff0c;使值较小的元素逐步从后面移到前面…

深入理解React高阶组件(HOC):原理、实现与应用实践

组件复用的艺术 在React应用开发中&#xff0c;随着项目规模的增长&#xff0c;组件逻辑的复用变得越来越重要。传统的组件复用方式如组件组合和props传递在某些复杂场景下显得力不从心。高阶组件&#xff08;Higher-Order Component&#xff0c;简称HOC&#xff09;作为React中…

Neo4j社区版在win下安装教程(非docker环境)

要在 Windows 10 上安装 Neo4j 社区版数据库并且不使用 Docker Desktop&#xff0c;你可以按照以下步骤操作&#xff1a; 1. 安装 Java Development Kit (JDK) Neo4j 需要 Java 运行环境。推荐安装 JDK 17 或 JDK 11&#xff08;请根据你下载的 Neo4j 版本查看具体的兼容性要…

如何在 Odoo 18 中配置自动化动作

如何在 Odoo 18 中配置自动化动作 Odoo是一款多功能的业务管理平台&#xff0c;旨在帮助各种规模的企业更高效地处理日常运营。凭借其涵盖销售、库存、客户关系管理&#xff08;CRM&#xff09;、会计和人力资源等领域的多样化模块&#xff0c;Odoo 简化了业务流程&#xff0c…

node.js 实战——(Http 知识点学习)

HTTP 又称为超文本传输协议 是一种基于TCP/IP的应用层通信协议&#xff1b;这个协议详细规定了 浏览器 和万维网 服务器 之间互相通信的规则。协议中主要规定了两个方面的内容&#xff1a; 客户端&#xff1a;用来向服务器发送数据&#xff0c;可以被称之为请求报文服务端&am…

新市场环境下新能源汽车电流传感技术发展前瞻

新能源革命重构产业格局 在全球碳中和战略驱动下&#xff0c;新能源汽车产业正经历结构性变革。国际清洁交通委员会&#xff08;ICCT&#xff09;最新报告显示&#xff0c;2023年全球新能源汽车渗透率突破18%&#xff0c;中国市场以42%的市占率持续领跑。这种产业变革正沿着&q…

fastjson使用parseObject转换成JSONObject出现将字符特殊字符解析解决

现象&#xff1a;将字符串的${TARGET_VALUE}转换成NULL字符串了问题代码&#xff1a; import com.alibaba.fastjson.JSON;JSONObject config JSON.parseObject(o.toString()); 解决方法&#xff1a; 1.更换fastjson版本 import com.alibaba.fastjson2.JSON;或者使用其他JS…

【安装neo4j-5.26.5社区版 完整过程】

1. 安装java 下载 JDK21-windows官网地址 配置环境变量 在底下的系统变量中新建系统变量&#xff0c;变量名为JAVA_HOME21&#xff0c;变量值为JDK文件夹路径&#xff0c;默认为&#xff1a; C:\Program Files\Java\jdk-21然后在用户变量的Path中&#xff0c;添加下面两个&am…

机器人项目管理新风口:如何高效推动智能机器人研发?

在2025年政府工作报告中&#xff0c;“智能机器人”首次被正式纳入国家发展战略关键词。从蛇年春晚的秧歌舞机器人惊艳亮相&#xff0c;到全球首个人形机器人马拉松的热议&#xff0c;智能机器人不仅成为科技前沿的焦点&#xff0c;也为产业升级注入了新动能。而在热潮背后&…

【Linux】网络基础和socket(4)

1.网络通信&#xff08;app\浏览器、小程序&#xff09; 2.网络通信三要素&#xff1a; IP&#xff1a;计算机在网络上唯一标识&#xff08;ipv4:4个字段&#xff0c;每段最大255 IPV6:16进制&#xff09; 端口&#xff1a;计算机应用或服务唯一标识 ssh提供远程安全连接…

大数据可能出现的bug之flume

一、vi /software/flume/conf/dir_to_logger.conf配置文件 问题的关键: Dir的D写成了小写 另一个终端里面的东西一直在监听状态下无法显示 原来是vi /software/flume/conf/dir_to_logger.conf里面的配置文件写错了 所以说不是没有source参数的第三行的原因 跟这个没关系 …

图解Mysql原理之全局锁,表级锁,行锁了解吗?

前言 大家好&#xff0c;我是程序蛇玩编程。 Mysql中的锁大家都用过吗&#xff0c;那全局锁&#xff0c;表锁&#xff0c;行锁哪个用的频率最多呢? 正文 全局锁: 全局锁就是对整个数据库实例加锁。 MySQL 提供了一个加全局读锁的方法&#xff0c;命令是 Flush tables wi…

Java集成【邮箱验证找回密码】功能

目录 1.添加依赖 2.选择一个自己的邮箱&#xff0c;作为发件人角色。 3.编写邮箱配置【配置发件人邮箱】 4.编写邮箱配置类 5.编写controller业务代码 6.演示效果 7.总结流程 8.注意 结语 一.发送邮箱验证码 1.添加依赖 <!--导入邮箱依赖--> <dependency&g…

HarmonyOS 5.0应用开发——MVVM模式的应用

【高心星出品】 文章目录 MVVM模式的应用ArkUI开发模式图架构设计原则案例运行效果项目结构功能特性开发环境model层viewmodel层view层 MVVM模式的应用 MVVM&#xff08;Model-View-ViewModel&#xff09;模式是一种广泛用于应用开发的架构模式&#xff0c;它有助于分离应用程…

程序员鱼皮最新项目-----AI超级智能体教程(一)

文章目录 1.前言1.什么是AI大模型2.什么是多模态3.阿里云百炼平台介绍3.1文本调试展示3.2阿里云和dashscope的关系3.3平台智能体应用3.4工作流的创建3.5智能体编排应用 1.前言 最近鱼皮大佬出了一套关于这个AI 的教程&#xff0c;关注鱼皮大佬很久了&#xff0c;鱼皮大佬确实在…

【AI模型学习】双流网络——更强大的网络设计

文章目录 一 背景1.1 背景1.2 研究目标 二 模型2.1 双流架构2.2 光流 三 实验四 思考4.1 多流架构4.2 fusion策略4.3 fusion的early与late 先简单聊了双流网络最初在视频中的起源&#xff0c;之后把重点放在 “多流结构"和"fusion” 上。 一 背景 1.1 背景 Two-Str…

HarmonyOS:一多能力介绍:一次开发,多端部署

概述 如果一个应用需要在多个设备上提供同样的内容&#xff0c;则需要适配不同的屏幕尺寸和硬件&#xff0c;开发成本较高。HarmonyOS 系统面向多终端提供了“一次开发&#xff0c;多端部署”&#xff08;后文中简称为“一多”&#xff09;的能力&#xff0c;可以基于一种设计…

“在中国,为中国” 英飞凌汽车业务正式发布中国本土化战略

3月28日&#xff0c;以“夯实电动化&#xff0c;推进智能化&#xff0c;实现高质量发展”为主题的2025中国电动汽车百人会论坛在北京举办。众多中外机构与行业上下游嘉宾就全球及中国汽车电动化的发展现状、面临的挑战与机遇&#xff0c;以及在技术创新、市场布局、供应链协同等…