为了大家对JDK有一个全面的了解,下面是我从网上查找并整理了JDK5以后的所有关键新特性!(将会持续更新中)
JDK5新特性
- 自动装箱与拆箱
- 枚举
- 静态导入
- 可变参数(Varargs)
- 内省(introspector)
- 泛型(Generic)
- For-Each循环
JDK6新特性
- Desktop类和SystemTray类
- 使用JAXB2来实现对象与XML之间的映射
- 理解STAX
- 使用Compiler API
- 轻量级 Http Server API
- 插入式注解处理 API
- 使用Console开发控制台程序
- 对脚本语言的支持
- Common Annotations
- Java GUI界面的显示
- 嵌入式数据库Derby
- Web服务元数据
- Jtable的排序和过滤
- 更简单更强大的JAX-WS
JDK7新特性
- switch中可以使用字符串了
- 泛型实例化类型自动推断
- 自定义自动关闭类
- 新增一些读取环境信息的工具方法
- Boolean类型反转,空指针安全,参与位运算
- 两个char之间的equals
- 安全的加减乘除|sd
- 对Java集合( Collections)的增强支持
- 数值可加下划线
- 支持二进制数字
- 在try/catch异常扑捉中,一个catch可以写多个异常类型用|隔开
- 可以不必要写finally语句来关闭资源,只要你在try()的括号内部定义要使用的资源
JDK8新特性
- 接口的默认方法
- Lambda表达式
- 函数式接口
- 方法与构造函数引用
- 扩展了集合类
- 新的Date API
- Annotation多重注解
- streams(流)
- parallel streams(并行流)
- Map数据结构改进
JDK9新特性
- Jigsaw模块化项目
- 简化进程API
- 轻量级JSON API
- 钱和货币的API
- 改善锁竞争机制
- 代码分段缓存
- 智能java编译
- http2.0客户端
- kulla计划
JDK10新特性
- 局部变量的类型推断
- GC改进和内存管理
- 线程本地握手
- 备用内存设备上的堆分配
- 其他Unicode语言 - 标记扩展
- 基于Java的实验性JIT编译器
- 开源根证书
- 根证书颁发认证(CA)
- 将JDK生态整合单个存储库
- 删除工具javah
JDK11新特性
- 基于嵌套的访问控制
- 动态类文件常量
- 改进 Aarch64 内联函数
- Epsilon:No-Op 垃圾收集器
- 删除 Java EE 和 CORBA 模块
- HTTP 客户端(标准)
- Lambda 参数的本地变量语法
- Curve25519 和 Curve448 密钥协议
- Unicode 10
- 运行记录仪
- ChaCha20 和 Poly1305 密码算法
- 启动单文件源代码程序
- 低开销堆分析
- 传输层安全性(TLS)1.3
- ZGC:可扩展的低延迟垃圾收集器
- 弃用 Nashorn JavaScript 引擎
- 弃用 Pack200 工具和 API