JDK1.5新特性
一、泛型(Generics)
爲集合(collections)提供編譯時類型安全,無需每刻從Collections取得一個對象就進行強制轉換(cast)
二、加強的for循環(foreach)
減小迭代器(iterator)的潛在錯誤(error-proneness)
三、自動裝箱、拆箱(Autoboxing/unboxing)
無需在基本類型(primitive types)(例如double)和包裝類型(wrapper types)(例如Double)之間人工地進行轉換
四、枚舉(Typesafeenums)
提供類型安全枚舉模式的各項好處
五、靜態導入(Static import)
無需在使用其餘類的靜態成員變量前綴其類名.這將使得代碼更爲簡潔
六、可變參數
七、元數據(註解Annotation,e.g.: @Override)java
JDK1.6新特性
一、Web服務元數據(@WebService,@WebMethod,@WebResult)
二、腳本語言支持(JSR223, javax.script.ScriptEngine)
三、JTable的排序和過濾(在JTable中設置TableRowSorter,根據其setRowFilter方法來過濾)
四、更簡單、更強大的JAX-WS(Java Architecture for XML Web Services,JSR224)
五、輕量級Http Server
六、嵌入式數據庫Derbysql
jdk1.7新特性
1 對集合類的語言支持;
2 自動資源管理;
3 改進的通用實例建立類型推斷;
4 數字字面量下劃線支持;
5 switch中使用string;
6 二進制字面量;
7 簡化可變參數方法調用;
8 新增一些取環境信息的工具方法;
9 Boolean類型反轉,空指針安全,參與位運算;
10 兩個char間的equals;
11 安全的加減乘除;
12 map集合支持併發請求 ,且能夠寫成 Map map = {name:"xxx",age:18};數據庫
一、switch參數能夠是String
1.7以前:byte/char/short/enum/int
1.7以後:byte/char/short/enum/int/String
String sex="男";
switch(sex){
case "男":System.out.println("先生");break;
case "女":System.out.println("女士");break;
}數組
二、二進制、八進制、十六進制表達
1.7以前:二進制沒法直接表達
1.7以後:二進制能夠直接表達、輸出安全
System.out.println("二進制:"+0b11);
System.out.println("八進制:"+011);
System.out.println("十六進制:"+0x11);併發
三、數字表示(字面量中使用下劃線,能夠在整數和浮點數數字間用任意多的下劃線來分割)
System.out.println(500_00);//_至關於數學中科學計數的逗號:500,00
500_00.23_22表示500,00.23,22
1_2_3_4_5表示12345app
四、泛型的運用(泛型實例化自動推斷)
1.7以前:java.util.List<String> list = new java.util.ArrayList<String>();
1.7以後:java.util.List<String> list = new java.util.ArrayList<>();ide
五、一個catch能夠捕獲多個異常
try{工具
}catch(IOException | NullPointException | ArrayIndexOutOfBoundsException e){
e.printStackTrace();
}spa
六、try-with-resources
try(BufferedReader reader = new BufferedReader(new FileReader("path"))){
//reader不須要手動關閉,會在try完成時自動釋放
//try子句的內容必須實現java.lang.AutoCloseable接口,不然編譯異常
}
一般,實現AutoCloseable接口的類有:java.sql.connection.*;java.io.BufferedReader;java.io.FileReader;
也能夠自定義類,實現AutoCloseable接口,實現其中的close()方法;
try子句若是要管理多個資源,可使用「;」號分割
七、集合使用方式的加強支持
List<String> list = ["item"];//
String item = list[0];//像數組同樣使用List
Set<String> set = {"item"};
Map<String,Integer> map = {"key":1};
int value = map["key"];//像JSON同樣
八、可變參數警告@SafeVarargs
@SafeVarargspublic staitc <T> T useVarargs(T... args){}若是參數是可變參數,每次調用時會產生警告信息,若是此時你能保證參數是安全的,可以使用@SafeVarargs去除警告