【Java笔记】Java历史版本新特性(JDK5~JDK13)

Java历史版本新特性(JDK5~JDK13)


嗯,啊,额,只要是收集整理资源,当然很多不了解的东西和功能,我是很自然的就忽略掉了。改进毕竟很多,我只是列出了相对比较直观的改进


版本演进


Java 5

  • 引入泛型功能(伪泛型)
  • 增强循环,可以使用迭代循环,Iterator
  • 支持自动装箱自动拆箱
  • 支持类型安全的枚举
  • 支持可变参数
  • 支持静态引入
  • 支持元数据(注解)功能
  • 引入Java Instrumentation


Java 6

  • 支持脚本语言
  • 引入JDBC 4.0 API
  • 引入Java Compiler API
  • 支持可插拔注解


Java 7

  • 支持了switch语句以String作为条件,至此已支持4中基本类型(byte, char , short ,int),2种对象类型(枚举,String)
  • 优化增强了泛型对象类型推断
  • 支持了在一个语句块中捕获多种异常,既一个catch,可以|多个异常
  • 支持try-with-resources语法,自动为资源类进行关闭,而无需finally进行
  • 引入Java NIO2开发包,支持了AIO
  • 支持了数值的二进制表示方式,比如0b1010000, 以前只能8,10,16进制的表示
  • 钻石型语法,省略类型参数的声明
  • 支持了动态语言


Java 8

  • 支持lambda表达式
  • 支持集合的Stream流处理
  • 支持Functional函数式接口
  • 对各个类支持了很多对应的lambda增强方法
  • 增强接口,支持了接口的默认和静态的具体方法
  • 支持LocalDate等时间包,以改进原有Date
  • 支持Optional来改进Null值的处理
  • 优化了HashMapConcurrentHashMap


Java 9

  • 支持Java平台级模块系统,既模块化
  • 支持了JShell,既类似node.js, python一样的命令行工具,对待简单的东西,可以直接命令测试
  • 改进Javadoc, 使得Javadoc可以搜索
  • 支持了List.of(), Set.of(), Map.of()的方式初始化不可变集合,省略了大量代码,语法糖
  • 改进的Stream API,比如ofNullable(),dropWhile(),takeWhile()等
  • 增强接口,支持了私有接口具体方法,补充了Java8默认和静态方法的支持
  • G1垃圾收集器作为默认的垃圾收集器,并标注CMS为过时收集器
  • 引入了响应式流Reactive Streams API, 支持了响应式编程
  • 支持了HTTP/2客户端


Java 10

  • 支持了局部变量的类型推导,支持了局部变量的var声明
  • 优化改进了G1垃圾回收器,采用并行化mark-sweep-compact算法


Java 11

  • 简化了启动单个源代码文件的方法,使得小白命令式编译运行Java文件变成更加简单,java Helloworld.java 即可
  • 增加支持了一个叫Epsilon的低开销垃圾收集器
  • 增加支持了一个叫ZGC(Z Garbage Collector)的可伸缩低延迟垃圾收集器, 相比G1,停顿时间有了很大的改进,稳定在10ms以下
  • 重写了HttpClient,提供了新的标准化HttpClient API, 以后不再需要引入apache包的HttpClient或是okhttp就能支持高性能的网络编程
  • 增加了对TLS 1.3的支持
  • 允许了飞行记录器进行商用下的使用
  • 更好的支持了动态语言,在JVM层面增加了invokedynamic指令
  • 支持了在lambda内部使用var声明局部变量


Java 12

  • 引入了一个叫Shenandoah 低停顿的实验性垃圾收集器
  • 改进了G1垃圾收集器
  • 引入了实验性的预览版Switch语句优化,可以省略break语句,合并多个case
  • 引入了JVM的常量API, 有助于一些分析的实现


Java 13

  • 增强优化了ZGC垃圾收集器, 归还未使用的堆内存给操作系统
  • 将Java12引入的预览版Switch语法提为正式版,使得Switch的使用更加的顺滑和流畅
  • 支持了"""字符串块功能

你可能感兴趣的:(Java杂烩)