- Taipei, Taiwan
-
Java 8 | Stream (下)
Stream 的另一個價值是創造性地支持並行處理( parallel processing )。 Stream 操作可以是順序的,也可以是並行的。順序操作通過單線程執行,而並行操作則通過多線程執行。 並行(parallel)程序 parallelStream 是流並行處理程序的代替方...
-
Java 8 | Stream (上)
Java 8 API 添加了一個新的抽象稱為流 Stream ,可以讓你以一種聲明的方式處理資料。 Stream 使用一種類似用 SQL 語句從資料庫查詢資料的直觀方式來提供一種對 Java 集合運算和表達的高階抽象。 Stream API 可以極大提高 Java 工程師的生產力,讓工程師寫...
-
Java 8 | Optional
Java 應用中最常見的 bug 就是空值異常。在 Java 8 之前, Google Guava 引入了 Optionals 類來解決 NullPointerException ,從而避免源碼被各種 null 檢查污染,以便開發者寫出更加整潔的程式碼。 Java 8 也將Optional...
-
Java 8 | 拓寬註解的應用場景
Java 8 拓寬了註解的應用場景。現在,註解幾乎可以使用在任何元素上:局部變量、接口類型、超類和接口實現類,甚至可以用在函數的異常定義上。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
-
Java 8 | 重複註解
自從 Java 5 中引入註解以來,這個特性開始變得非常流行,並在各個框架和項目中被廣泛使用。不過,註解有一個很大的限制是:在同一個地方不能多次使用同一個註解。 Java 8 打破了這個限制,引入了重複註解的概念,允許在同一個地方多次使用同一個註解。 在 Java 8 中使用 @Repeat...
-
Java 8 | 方法引用
方法引用使得開發者可以直接引用現存的方法、 Java 類的構造方法或者實例對象。方法引用和 Lambda 表達式配合使用,使得 Java 類的構造方法看起來緊湊而簡潔,沒有很多複雜的模板代碼。 方法引用使用一對冒號 :: 。 下面,我們在 Car 類中定義了 4 個方法作為例子來區分 Ja...
-
Java 8 | 接口的默認方法和靜態方法
Java 8 使用兩個新概念擴展了接口的含義:默認方法和靜態方法。默認方法使得接口有點類似 traits ,不過要實現的目標不一樣。默認方法使得開發者可以在 不破壞二進制兼容性的前提下,往現存接口中添加新的方法,即不強制那些實現了該接口的類也同時實現這個新加的方法。 為什麼要有這個特性?...
-
Java 8 | 函數式接口
函數式接口( Functional Interface )就是一個有且僅有一個抽象方法,但是可以有多個非抽象方法的接口。 函數式接口可以被隱式轉換為 lambda 表達式。 Lambda 的設計者們為了讓現有的功能與 Lambda 表達式良好兼容,考慮了很多方法,於是產生了函數接口這個概念。...
-
Java 8 | Lambda 表達式
Lambda 表達式(也稱為閉包)是 Java 8 中最大和最令人期待的語言改變。它允許我們將函數當成參數傳遞給某個方法,或者把程式碼本身當作資料處理:函數式開發者非常熟悉這些概念。很多JVM平台上的語言( Groovy 、 Scala 等)從誕生之日就支持 Lambda 表達式,但是Java開...
-
Java 8 | Lambda 新語法,簡化程式,增強效能
以下文章內容是參考了 Java 8 Lambda新語法,簡化程式,增強效能 ,這篇文章,我參考很多文章後,發現這篇文章對我來說是最清晰最容易了解;而且文章中不單單只是說明了 Java 8 的特性,還提到了相關的 Anonymous class ,這讓我感到驚艷,所以特別挑選此篇文章來做學習。 ...