Lambda 容许把函数做为一个方法的参数传递进方法中。java
做用:解决 Java 被诟病的匿名内部类的问题。编程
做用:在接口中也能够有实现方法了。数组
java 8 以前,HashMap 底层的数据结构是数组+链表实现的, Java 8 以后是数组+链表+红黑树实现的,当链表的长度超过 8 以后,会转换成红黑树。服务器
做用:解决因哈希冲突致使的链表过长,查询效率低的问题。数据结构
新添加 Stream API (java.util.stream),把真正函数式编程的风格引入 Java。socket
Java 8 提供了一个新的 Nashorn JavaScript 引擎,它容许在 JVM 上运行特定的 JavaScript 应用。模块化
做用:解决日益增加的 Java 跟 JS 交互混合的需求。函数式编程
模块是一个包的容器,Java 9 最大的变化之一是引入模块系统。(Jigsaw 项目)函数
做用:解决大型项目模块化开发的需求。模块化开发
HTTP/2 标准是 HTTP 协议的最新版本,新的 HTTPClient API 支持 Websocket 和 HTTP2 流以及服务器推送特性。
List、Set、Map 接口中,提供新的静态工厂方法直接建立不可变的集合实例。
做用:建立不可变集合更方便,一行代码就搞定,节省了开销。
在接口中也容许编写 private 修饰的私有方法了。
做用:加强了接口的功能,提升了可扩展性。
内置了一个轻量级的 JSON API。
Java 9 引入了新的响应式流 API。
做用:支持响应式编程的需求。