Java 5
- 泛型Generics
- 枚举类型Enumeration
- 自动装箱(自动类型包装和解包)autoboxing & unboxing
- 可变参数varargs(varargs number of arguments)
- Annotations
- 新的迭代语句
- 静态导入
- 新的格式化方法
- 新的线程模型和并发库
Java 6
- 引入一个支持脚本引擎的新框架
- UI的增强
- 对WebService支持的增强
- 一系列的安全相关的增强
- JDBC 4.0
- Compiler API
- 通用的Annotations支持
Java 7
- switch中可以使用字符串
- 泛型实例化类型自动推断
- 语法上支持集合,而不一定是数组
- 新增了一些取环境信息的工具方法
- Boolean类型反转,空指针安全,参与为运算
- 两个char间的equals
- 安全的加减乘除
- Map集合支持并发请求
Java 8
- Lambda表达式
- 默认方法
- 静态方法
- 优化了HashMap以及ConcurrentHashMap
将HashMap原来的数组+链表的结构优化成了数组+链表+红黑树的结构,减少了hash碰撞造成的链表长度过长,时间复杂度过高的问题,ConcurrentHashMap则改进了原先的分段锁的方式,采用transient volatile HashEntry<K,V>[] table来保存数据。
- JVM
PermGen空间被移除了,取而代之的是Metaspace。JVM选项-XX:PermSize与-XX:MaxPermSize分别被-XX:MetaSpaceSize与-XX:MaxMetaspaceSize所代替。
- 新增原子性操作类LongAdder
- 新增StampedLock
Java 9
- jshell
- 私有接口方法
- 更改了HTTP调动的相关API
- 集合工厂方法
- 改进了Stream API