java版本發佈的發展歷程
目錄
JDK1.5的添加的屬性
JDK1.5爲每一個基本數據類型定義了一個封裝類。使java中的基本數據類型也有自己的對象
int --> Integer
double -->Double
long -->Long
char --> Character
float --> Float
boolean -->Boolean
short --> Short
byte ---> Byte
自動裝箱:將基本類型轉換成爲對象,例如:int --> Integer
自動拆箱:將對象轉換成爲基本數據類型,例如:Integer --> int
對於JDK1.5之前集合總不能存放基本數據的類型,現在也能夠解決。
枚舉:
枚舉使JDK1.5推出的一個比較重要的特性。其關鍵字爲enum,例如:定義代表顏色的枚舉
public enum Color{
RED,GREEN,YELLOW
}
靜態導入
優點:使用靜態導入可以使被導入類的所有靜態變量和靜態方法在當前類直接課件,使用這些靜態成員無需再給出他們的類名。
缺點:過度使用會降低代碼的可讀性
變長參數
在JDk1.5以前,當我們要爲一個方法傳遞多個類型相同的參數,我們有兩種方法解決
1.直接傳遞一個數組過去
public void printColor(String red,String green,String yellow){
}
2.有多少個參數就傳遞多少個參數。
public void printColor(String[] colors){
}
這種編寫方法相對來說比較麻煩,如果參數個數不確定,編寫不是那麼順手了,使用可變參數就可以很好地解決這些問題了
例如:
public void printColor(String.. colors){
}
如果參數的類型相同,那麼可以使用(類型+三個點),後面跟一個參數名稱的形式。這樣的好處就是隻要參數類型相同,無論傳遞幾個參數都沒有限制,注意:可變參數必須是參數列表的最後一項(該特性對對象和基本數據類型都適用)
泛型
“泛型”意味着編寫的代碼可以被不同類型的對象所重用。可見泛型的提出爲了編寫重用性更好的代碼,泛型的本質是參數化類型,也就是說所操作的數據類型被指定爲一個參數。
List<String> strs = new ArrayList<String>();
for-Each循環
例如上面這個集合我們可以通過for-each遍歷,這樣國家簡單清晰
for(String s:strs){
System.out.println(s);
}
線程併發庫
線程併發庫是Java1.5提出的關於線程處理的高級功能,所在包:java.util.concurrent
JDK6
Desktop類和SystemTray類
前者可以用來打開默認瀏覽器瀏覽指定的url,打開相同默認郵件客戶端給指定的郵箱發郵件。
使用Complier API
輕量級Http Server API
用Console開發控制檯程序
對腳本語言的支持
JDK 7
數字變量對下滑線的支持
switch對String的支持
try-with-resource
捕獲多種異常並用改進後的類型檢查來重新拋出異常
創建類型時類型判斷
JDK7之前要這樣寫:
List<String> list =new ArrayList<Stirng>();
而在Java 以後,也可以這麼寫了
List<String> list = new ArrayList<>();
JDK 8
Lambda表達式和函數接口
接口的默認方法和靜態方法
更好的類型判斷
Optional
Streams
新的日期時間API
Nashorn JavaScript引擎
Base64