Java深度好文整理

Java各版本经典特性及更新时间

Java程序员必备基础:JDK 5-15都有哪些经典新特性 - 知乎

全网最全的JAVA所有版本特性【JAVA 1.0 - JAVA 18】_冯一朔的博客-CSDN博客_java版本

版本

更新时间

新特性

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

猜你喜欢

转载自blog.csdn.net/zhiyuan263287/article/details/124832583