java8新特性

  • 行为参数化:
  • 函数式接口:只定义一个抽象方法的接口。能够经过注解@FunctionalInterface标注。
  • 函数描述符:函数式接口的抽象方法的签名基本上就是Lambda表达式的签名。
  • 原始类型特化:
  • 装箱后的值本质上就是把原始类型包裹起来,并保存在堆里。所以,装箱后的值须要更多的内存,并须要额外的内存搜索来获取被包裹的原始值。
  • 方法引用:主要分为3类
    1. 指向静态方法的方法引用(例如 Integer 的 parseInt 方法,写做 Integer::parseInt )。
    2. 指 向 任 意 类 型 实 例 方 法 的 方 法 引 用 ( 例 如 String 的 length 方 法 , 写 做String::length )。
    3. 指向现有对象的实例方法的方法引用(假设你有一个局部变量 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()。
相关文章
相关标签/搜索