最近開始將執行環境的 JVM 8 升到 11,舊專案在編譯的時候如果沒有指定目標版本,就可能在執行時出現 UnsupportedClassVersionError 的錯誤。
Java8 新功能筆記 (4) - Optional
Optional 是值的容器,只有兩種狀態,不是有值就是沒值。目的是做為 null 的替代方案。Optional 提供工廠方法,將你輸入的值產生為 Optional 物件,這時Optional 物件即為該值的容器,若要取回該值,必須使用 get() 方法。
Java8 新功能筆記 (3) - Stream
Java 8 新增了一個新的 Stream package 專門用來處理集合(collection),搭配 lambda expression,在處理集合方面變得更加方便。
Java8 新功能筆記 (2) - Lambda expression
Java 8 新加入的功能 Lambda 表達式,讓你可以將函式做為方法的參數,如果你寫過 JavaScript 應該會覺得有點像。Lambda 有許多的優點,可以簡化匿名內部類別、偵聽器及事件處理等的冗長程式碼,讓它們不只變短也易讀。另外還可以實體化前面介紹的函式介面、並且以更方便的方式操作集合等等。
Java8 新功能筆記 (1) - Functional Interfaces
Java 8 的新功能最讓大家有印象的是 Lambda 表達式,但在使用 Lambda 表達式之前,要先瞭解另一個新的功能,叫做 Functional Interfaces 函式介面。其實它不是新的東西,只是被賦予特定任務,所以重新定義它的名稱及用途。
在 Java 中 import 時該使用萬用字元還是明確指定
因為使用 IDE 的關係,import 的部份都是由 IDE 自動處理。在 Eclipse 中,當你輸入某個類別時,若該類別尚未 import 到該檔案,就會出現紅色波浪底線,這時候可以有 3 種方式讓 Eclipse 幫你自動 import:
- 把滑鼠游標移至該紅色波浪底線的類別上,會出現浮動視窗,選擇 import
- 使用鍵盤,將游標移至該紅色波浪底線的類別上,按下 F2 然後 import
- 使用快速鍵 ctrl + shift + O 會自動將所有未 import 的類別全部 import
使用 GSON 處理 Java 中的 JSON
什麼是 JSON? 查一下 Wiki JSON 看看。簡單的說 JSON 的全名是JavaScript Object Notation,用途是資料交換。在這之前會用 XML 來做資料交換,可是當資料量很多時,XML 檔會很肥大,而 JSON 是輕量級的資料交換格式,著重在檔案小速度快。
一個計算程式碼執行時間的小工具
最近在寫的一個程式,有個功能必須從網路下載資料,然後解析網頁去取得值,由於執行時間有點久,所以想要知道到底是哪個環節耗了那麼多時間。問題是每次開發都要寫重覆的程式碼實在很浪費時間,所以就花了點時間寫個小工具,順便練習一下Google Code及git的使用。