JDK 8 的新特性包括:
- Lambda表达式。允许编写更加简洁和灵活的代码,它允许将代码作为参数传递给其他方法或作为函数返回。Lambda表达式使用“->”操作符,并且可以包含一个或多个参数,这些参数的类型由编译器推断得出。123
- 函数式接口的增强。在接口中可以添加默认方法和静态方法,这增强了接口的可扩展性和功能。14
- Optional类。用于避免NullPointerException的检查,提供了处理可能为空的对象的便捷方式。13
- 新的时间和日期API。重新设计了API,支持多线程操作,并且提供了更现代的设计。1
- 可重复注解。允许在同一个位置放置多个相同的注解。
- Stream API。提供了一种强大的数据操作方式,类似于SQL语句,使得处理集合和数据更加高效和简洁。
- 并行Stream操作。通过Fork/Join框架提升性能,简化并行编程。
- 速度优化。包括改进的垃圾回收机制,如元空间的引入代替了永久代,以及数据结构如HashMap的调整。3
- ConcurrentHashMap的改进。从锁分段机制改为大量CAS操作,同时HashMap和ConcurrentHashMap的结构也从链表改为链表+红黑树。
- 引入新的Date/Time API。提供了更现代的时间和日期处理方式。4
- jdeps命令行工具。用于分析类、目录、jar包的类依赖层级关系。