1. Java6
1.1 对脚本语言的支持
- 比如 ruby, groovy, javascript
1.2 插入式注解
- 比如 Lombok
2. Java7
2.1 泛型实例化类型自动推断 ("<>")
List<String> list = new ArrayList<>();
Map<String, String> map = new HashMap<>();
2.2 捕获多个异常类型 ("|")
try {
} catch (NullPointerException | IllegalArgumentException e) {
}
2.3 带下划线的数字
例如 10_1000
, 分割数字增强可读性
官方文档 https://docs.oracle.com/javase/8/docs/technotes/guides/language/underscores-literals.html
3. Java8
3.1 Lambda表达式
语法:
(Type param, Type param2, ... Type paramN) -> {
statement;
return result;
}
注:Lambda 表达式访问其外部变量时,变量不用声明为 final,隐性具有 final 语义
3.2 函数式接口
- 函数式接口有且仅有一个抽象方法声明
- 内置函数式接口
- Predicate<T>
- Consumer<T>
- Supplier<T>
- Function<T, R>
3.3 接口默认方法
public interface Predicate<T> {
boolean test(T t);
default Predicate<T> negate() {
return (t) -> !test(t);
}
}
网友评论