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()。
相關文章
相關標籤/搜索