Java 是一種物件導向程式設計語言,但不是純物件導向的語言,因為支援基本類型,如 int 、 char 等,程式碼會編譯成 byte code ,運行在負責抽象底層操作系統的 JVM(Java 虛擬機)上,語法類似於 C/C++,但是不提供像 pointers 指針這樣的低階編程功能,擁有跨平台、物件導向、泛型程式設計的特性,廣泛應用於各種系統, Learn Java 介紹各種實務是應用,如移動應用程式( Android 基於 Java )、桌面應用程式、Web 應用程式、客戶端-服務器應用程式、企業應用程式等。
Requested Array Size Exceeds VM Limit 建立 Array 時,超過 VM 陣列大小上限,JVM 會在分配的資料結構上,會執行一項檢查,確定是否可以 Addressable 尋址,可分配大小為 2,147,483,645,及 Integer.MAX_VALUE-2 的陣列,若增加一點點長度,如: Integer.MAX_VALUE-1 就會拋出此錯誤, Java 147 增加了範例,並透過 JUnit 4 來驗證產出結果。
Java Get Keys And Values From Map 採用迴圈或 Stream 的方式,操作 forEach 及 entrySet 、 keySet 、 values 等方法,取得 key 及 value ,本篇增加了範例,並透過 JUnit 4 單元測試來驗證產出結果。
Java Primitive Type Stream Boxed 提供 Primitive Stream 轉換成 Object Stream ,支援 Stream 排序、並行處理、聚合操作等,可以避免大量不必要的物件建立,節省系統資源,本篇增加了範例,並透過 JUnit 4 來驗證產出結果。
Java List Primitive Type Stream 提供 List 轉換成 Primitive Stream ,支援 Stream 排序、並行處理、聚合操作等,可以避免大量不必要的物件建立,本篇增加了範例,並透過 JUnit 4 來驗證產出結果。
Java Primitive Type Stream 提供基本型別轉換成 Primitive Stream ,支援 int 、 long 、 double 、 array 等,可以避免大量不必要的物件建立,本篇增加了範例,並透過 JUnit 4 來驗證產出結果。
GC Overhead Limit Exceeded 超過 GC 回收上限,表示 Java 程序花費 98% 以上的時間執行 GC,但只恢復了不到 2% 的記憶體,且執行連續重複了 5 次,就會產生 Java OutOfMemoryError 的錯誤,模擬建立一個物件,將其加入到一個 List 中,大小限制為 1000 個,重複建立過程,直到 JVM 拋出錯誤, Java 147 增加了範例,並透過 JUnit 4 來驗證產出結果。
Unable To Create New Native Thread 無法建立新的執行緒,因為每個執行都需要佔用一定的記憶體空間,當 JVM 向底層 OS 請求建立一個新的執行緒時,如果沒有足夠的資源分配就會拋出此錯誤,模擬無窮迴圈建立執行緒,直到 JVM 拋出錯誤, Java 147 增加了範例,並透過 JUnit 4 來驗證產出結果。
Java Loop Through Map 使用不同的方式,從 entrySet 、 keySet 、 values 及 forEach 等方式,循環訪問取得 Map 中的元素,本篇增加了範例,並透過 JUnit 4 單元測試來驗證產出結果。
Java Loop Through List 使用不同的方式,從典型、進階、迴圈及 forEach 等方式,循環訪問取得 List 中的元素,本篇增加了範例,並透過 JUnit 4 單元測試來驗證產出結果。
Java Remove Items From Map 迴圈內移除條件相符合的元素,會拋出 ConcurrentModificationException 例外,所以有更多的方法來操作 Map,提供幾種 Remove an Element from Map 刪除元素的方法,本篇增加了範例,並透過 JUnit 4 單元測試來驗證產出結果。