JDK Version 1.0 Oak(橡树) |
1996-01-23 |
|
JDK Version 1.1 |
1997-02-19 |
- 1.JDBC(Java DataBase Connectivity)
- 2.支持内部类
- 3.RMI(Remote Method Invocation)
- 4.反射
- 5.Java Bean
|
JDK Version 1.2 Playground(操场) |
1998-12-08 |
- 1.集合框架
- 2.JIT(Just In Time)编译器
- 3.对打包的Java文件进行数字签名
- 4.JFC(Java Foundation Classes), 包括Swing 1.0, 拖放和Java2D类库
- 5.Java插件
- 6.JDBC中引入可滚动结果集,BLOB,CLOB,批量更新和用户自定义类型
- 7.Applet中添加声音支持
|
JDK Version 1.3 Kestrel(红隼) |
2000-05-08 |
- 1.Java Sound API
- 2.jar文件索引
- 3.对Java的各个方面都做了大量优化和增强
|
JDK Version 1.4 Merlin(隼) |
2002-02-13 |
- 1.XML处理
- 2.Java打印服务
- 3.Logging API
- 4.Java Web Start
- 5.JDBC 3.0 API
- 6.断言
- 7.Preferences API
- 8.链式异常处理
- 9.支持IPV6
- 10.支持正则表达式
- 11.引入Imgae I/O API
|
JAVA 5 Tiger(老虎) |
2004-09-30 |
- 1.泛型
- 2.增强循环,可以使用迭代方式
- 3.自动装箱与自动拆箱
- 4.类型安全的枚举
- 5.可变参数
- 6.静态引入
- 7.元数据(注解)
- 8.Instrumentation
|
JAVA 6 Mustang(野马) |
2006-12-11 |
- 1.支持脚本语言
- 2.JDBC 4.0API
- 3.Java Compiler API
- 4.可插拔注解
- 5.增加对Native PKI(Public Key Infrastructure), Java GSS(Generic Security Service),Kerberos和LDAP(Lightweight Directory Access Protocol)支持
- 6.继承Web Services
|
JAVA 7 Dolphin(海豚) |
2011-07-28 |
- 1.switch语句块中允许以字符串作为分支条件
- 2.在创建泛型对象时应用类型推断
- 3.在一个语句块中捕获多种异常
- 4.支持动态语言
- 5.支持try-with-resources(在一个语句块中捕获多种异常)
- 6.引入Java NIO.2开发包
- 7.数值类型可以用二进制字符串表示,并且可以在字符串表示中添加下划线
- 8.钻石型语法(在创建泛型对象时应用类型推断)
- 9.null值得自动处理
|
JAVA 8 |
2014-03-18 |
- 1.Lambda 表达式
- 2.函数式接口
- 3.默认方法
- 4.新工具
- 5.Stream API
- 6.Date Time API
- 7.Optional 类
- 8.Nashorn, JavaScript 引擎
- 9.重复注解
- 10.Base 64
|
JAVA 9 |
2017-09-22 |
- 1.模块系统(Jigsaw 项目)
- 2.REPL (JShell)
- 3.HTTP 2 客户端
- 4.改进的 Javadoc
- 5.多版本兼容 JAR 包
- 6.集合工厂方法
- 7.私有接口方法
- 8.进程 API:改进的 API 来控制和管理操作系统进程
- 9.改进的 Stream API
- 10.改进 try-with-resources
- 11.改进的弃用注解 @Deprecated
- 12.改进钻石操作符(Diamond Operator)
- 13.改进 Optional 类
- 14.多分辨率图像 API
- 15.改进的 CompletableFuture API
- 16.轻量级的 JSON API:内置了一个轻量级的JSON API
- 17.响应式流(Reactive Streams) API
|
JAVA 10 |
2018-03-20 |
- 1.var 局部变量类型推断
- 2.不可变集合的改进
- 3.并行全垃圾回收器G1
- 4.线程本地握手
- 5.Optional新增方法
|
JAVA 11(LTS) |
2018-09-25 |
- 181:Nest-Based访问控制
- 309:动态类文件常量
- 315:改善Aarch64 intrinsic
- 318:无操作垃圾收集器
- 320:消除Java EE和CORBA模块
- 321:HTTP客户端(标准)
- 323:局部变量的语法λ参数
- 324:Curve25519和Curve448关键协议
- 327:Unicode 10
- 328:飞行记录器
- 329:ChaCha20和Poly1305加密算法
- 330:发射一列纵队源代码程序
- 331:低开销堆分析
- 332:传输层安全性(Transport Layer Security,TLS)1.3
- 333:动作:一个可伸缩的低延迟垃圾收集器 (实验)
- 335:反对Nashorn JavaScript引擎
- 336:反对Pack200工具和API
|
JAVA 12 |
2019-03-19 |
- 189:新增一个名为 Shenandoah 的垃圾回收器,它通过在 Java 线程运行的同时进行疏散 (evacuation) 工作来减少停顿时间
- 230:新增一套微基准测试,使开发者能够基于现有的 Java Microbenchmark Harness(JMH)轻松测试 JDK 的性能,并创建新的基准测试
- 325:对 switch 语句进行扩展,使其可以用作语句或表达式,简化日常代码
- 334:引入一个 API 来对关键类文件 (key class-file) 和运行时工件的名义描述(nominal descriptions)进行建模,特别是那些可从常量池加载的常量
- 340:删除与 arm64 端口相关的所有源码,保留 32 位 ARM 移植和 64 位 aarch64 移植
- 341:默认生成类数据共享(CDS)存档
- 344:当 G1 垃圾回收器的回收超过暂停目标,则能中止垃圾回收过程
- 346:改进 G1 垃圾回收器,以便在空闲时自动将 Java 堆内存返回给操作系统
|
JAVA 13 |
2019-09-17 |
- 350:对appCDS进行性了扩展
- 351:对ZGC进行了增强
- 353: 在这个版本中,将使用新的实现来代替java.net.socket和java.net.serversocket API的底层实现
- 354:扩展开关,以便它可以用作语句或表达式
- 355: 向Java语言添加文本块
|
JAVA 14 |
2020-03-17 |
- 305:instanceof 的模式匹配(预览)
- 343:打包工具(孵化)
- 345:G1 的NUMA 内存分配优化
- 349:JFR事件流
- 352:非原子性的字节缓冲区映射
- 358:非常有帮助的空指针异常
- 359:Records(预览)
- 361:Switch 表达式(标准)
- 362: 弃用 Solaris 和S PARC 端口
- 363:移除 CMS(Concurrent Mark Sweep)垃圾收集器
- 364:macOS 系统上的 ZGC
- 365:Windows 系统上的 ZGC
- 366: 弃用 ParallelScavenge + SerialOld GC 组合
- 367:移除Pack200 Tools和API
- 368:文本块(第二个预览版)
- 370: 外部存储器API(孵化)
|
JAVA 15 |
2020-09-15 |
- 339:蒙哥马利与扭曲爱德华曲线签名算法
- 360:密封类(预览)
- 371:隐藏类
- 372:移除nasorn JavaScript引擎
- 373:重新实现旧的DatagramSocket API
- 374:禁用和弃用偏置锁
- 375:模式匹配的instanceof(第二次预览)
- 377:ZGC:一个可扩展的低延迟垃圾收集器
- 378:文本块
- 379:Shenandoah:低暂停时间垃圾收集器
- 381:移除Solaris和SPARC端口
- 383:外部内存访问API(第二个孵化器)
- 384:记录(第二次预览)
- 385:建议移除RMI激活
|
JAVA 16 |
2021-03-16 |
- 338:病媒API(孵化器)
- 347:启用C++ 14种语言特性
- 357:从Mercurial迁移到Git
- 369:迁移到GitHub
- 376:ZGC:并发线程堆栈处理
- 380:Unix-Domain 套接字通道
- 386:Alpine Linux端口
- 387: 弹性Metaspace
- 388:Windows / AArch64端口
- 389:国外连接器API(孵化器)
- 390:对基于值的类的警告
- 392:包装工具
- 393:外存储器访问API(第三孵化器)
- 394:instanceof匹配模式
- 395:记录
- 396:默认情况下对JDK内部进行强封装
- 397:密封类(第二次预览)
|
JAVA 17 |
2021-09-14 |
- 306:恢复总是严格的浮点语义
- 356:增强型伪随机数发生器
- 382:新的 macOS 渲染管道
- 391:将 JDK 移植到 macOS/AArch64
- 398:不赞成删除 Applet API
- 403:强封装 JDK 内部构件
- 406:模式匹配开关(预览)
- 407:删除 RMI 激活
- 409:封闭类别
- 410:删除实验 AOT 和 JIT 编译器
- 411:请求删除安全管理器
- 412:外部函数与内存 API (孵化器)
- 414:矢量 API (第二孵化器)
- 415:特定于上下文的反序列化过滤器
|
JAVA 18 |
2022-03-22 |
- 400:默认 UTF-8
- 408:简单的网络服务器
- 413:代码片段
- 416:重构 Reflection
- 417:计算向量的 API
- 418:互联网地址解析 SPI
- 419:新API,让 JAVA 程序能够与其他非 JAVA 运行时的程序或数据进行交互
- 420:开关模式匹配
- 421:弃用 finalize
|