一、JDK各版本,时间表
二、JDK各版本、新特性
JDK4
正则表达式,异常链,NIO,日志类,XML解析器,XLST转换器
JDK5
自动装箱、泛型、动态注解、枚举、可变长参数、遍历循环
JDK6
提供动态语言支持、提供编译API和卫星HTTP服务器API,改进JVM的锁,同步垃圾回收,类加载
JDK7
- 支持二进制数字 0b
- 多个异常捕获(多个异常通过使用 “|”操作符分隔)
- 安全的加减乘除
- Switch 支持 String字符串
- Java集合(Collections)增强
- 两个char之间的equals方法
- boolean类型的反转,空指针安全,参与位运算
- 数值可以加下划线用作分隔符
- 简化了可变参数方法的调用
- 调用泛型类的构造方法时,可以省去泛型参数,编译器会自动判断。
- 提供GI收集器
- 加强对非Java语言的调用支持(JSR-292,升级类加载架构)
JDK8
- Lambda 表达式
- 方法引用
- 默认方法
- 新工具*
- Stream API
- Date Time API
- Optional 类
- Nashorn JavaScript 引擎
JDK9
重要:
- 模块系统
- 交互式编程环境, REPL(JShell)
- HTTP 2 客户端 ,(jdk9 中引入httpClient api 代替原有的HttpURLConnection )
- 改进的 Javadoc
- 多版本兼容jar包
- 集合工厂方法
- 进程 API
- 轻量级的 JSON API
- String底层存储结构的变更(char数组变成byte字节数组)
- 下划线标识符命名的限制 _ 不允许了:
改进
- Stream API (在java8基础上,新增加4个方法)
- 改进, try-with-resources
- 改进,弃用注解 @Deprecated
- 改进,钻石操作符(Diamond Operator)
- 改进, Optional 类
- 改进,多分辨率图像 API
- 改进,CompletableFuture API
- 响应式流(Reactive Streams) API
- 改进, 私有接口方法(在接口中 jdk7 只能声明全名常量和抽象方法 jdk8 添加了静态方法和默认方法 jdk9添加了私有方法)
JDK10
- 局部变量的类型推断
- GC改进和内存管理
- 线程本地握手
- 备用内存设备上的堆分配
- 其他Unicode语言 – 标记扩展
- 基于Java的实验性JIT编译器
- 开源根证书
- 根证书颁发认证(CA)
- 将JDK生态整合单个存储库
- 删除工具javah
JDK11
- 181 嵌套类可见性控制
- 309 动态文件常量
- 315 改进 Aarch64 Intrinsics
- 318 Epsilon–一个无操作的垃圾收集器
- 320 删除 Java EE 和 CORBA 模块
- 321 HttpClient
- 323 用于 Lambda 参数的局部变量语法
- 324 Curve25519 和 Curve448 算法的密钥协议
- 327 Unicode 10
- 328 Flight Recorder(飞行记录器)
- 329 haCha20 和 Poly1305 加密算法支持
- 330 Launch Single-File Source-Code Programs(启动单一文件的源代码程序)
- 331 低开销的 Heap Profiling
- 332 TLS 1.3支持
- 333 ZGC: A Scalable Low-Latency Garbage Collector(可伸缩低延迟垃圾收集器)
- 335 弃用 Nashorn JavaScript 引擎
- 336 弃用 Pack200 工具和 API
JDK12
1、Switch Expressions;2、Shenandoah GC;
JDK13
1、switch优化更新;2、文本块升级;3、重新实现旧版套接字API;4、核心库/java.util中:I18N;5、取消使用未使
用的内存
JDK14
1、switch优化变更为最终版;2、垃圾回收相关;3、instanceof的模式匹配(预览版);4、删除了安全库java.security.acl API;5、货币格式(优化)
JDK15
1、加密签名、文本块、隐藏类、外部存储器访问 API、 ZGC、模式匹配和 Records
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/280254.html