java8新特性
- 行为参数化:
- 函数式接口:只定义一个抽象方法的接口。能够经过注解@FunctionalInterface标注。
- 函数描述符:函数式接口的抽象方法的签名基本上就是Lambda表达式的签名。
- 原始类型特化:
- 装箱后的值本质上就是把原始类型包裹起来,并保存在堆里。所以,装箱后的值须要更多的内存,并须要额外的内存搜索来获取被包裹的原始值。
- 方法引用:主要分为3类
- 指向静态方法的方法引用(例如 Integer 的 parseInt 方法,写做 Integer::parseInt )。
- 指 向 任 意 类 型 实 例 方 法 的 方 法 引 用 ( 例 如 String 的 length 方 法 , 写 做String::length )。
- 指向现有对象的实例方法的方法引用(假设你有一个局部变量 expensiveTransaction用于存放 Transaction 类型的对象,它支持实例方法 getValue ,那么你就能够写 expensive-Transaction::getValue )。
- 迭代方式:stream使用内部迭代,collection使用外部迭代。
- 链接起来的流操做称为中间操做,关闭流的操做称为终端操做。
- stream数据筛选:filter(),distinct(),limit(),skip()。
- stream数据映射:map(),flatmap()。
- distinct() 根据流所生成元素的hashCode 和 equals 方法实现。
- 原始类型流特化, mapToInt(),mapToDouble(),mapToLong()。
- 获取stream的其余方式:Stream.of(), Stream.empty(), Arrays.stream()。
欢迎关注本站公众号,获取更多信息