jdk1.5的新特性:
1. 泛型
ArrayList list=new ArrayList()------>ArrayList
2 自動裝箱/拆箱
nt i=list.get(0).parseInt();-------->int i=list.get(0);原始類型與對應的包裝類不用顯式轉換
3 for-each
i=0;i
4 static import
Math.sqrt();--------------->sqrt();
5 變長參數
int sum(int ...intlist)有任意個參數,把他看作數組
jdk1.6的新特性
1.增強的for循環語句
Integer[] numbers = computeNumbers();
for (int i=0; i < numbers.length ; i++)
sum += numbers[i];
||
int sum = 0;
for ( int number: computeNumbers() )
sum += number;
2.監視和管理
Java SE 6中對內存洩漏增強了分析以及診斷能力。當遇到java.lang.OutOfMemory異常的時候,可以得到一個完整的堆棧信息,
並且當堆已經滿了的時候,會產生一個Log文件來記錄這個致命錯誤。另外,JVM還添加了一個選項,允許你在堆滿的時候運行腳本。
3.插入式註解處理
插入式註解處理API(JSR 269)提供一套標準API來處理Annotations
4.安全性
jdk1.7的新特性
1.模塊化特性
Java7也是採用了模塊的劃分方式來提速,一些不是必須的模塊並沒有下載和安裝,當虛擬機需要的時候,再下載相應的模塊,
同時對啟動速度也有了很大的改善。
2.多語言支持
Java7的虛擬機對多種動態程序語言增加了支持,比如:Rubby、 Python等等。
3.開發者的開發效率得到了改善
switch中可以使用字符串
在多線程併發與控制方面:輕量級的分離與合併框架,一個支持併發訪問的HashMap等等。
通過註解增強程序的靜態檢查。
提供了一些新的API用於文件系統的訪問、異步的輸入輸出操作、Socket通道的配置與綁定、多點數據包的傳送等等。
4.執行效率的提高
對對象指針由64位壓縮到與32位指針相匹配的技術使得內存和內存帶塊的消耗得到了很大的降低因而提高了執行效率。
提供了新的垃圾回收機制(G1)來降低垃圾回收的負載和增強垃圾回收的效果。
JDK1.8的新特性
一、接口的默認方法
Java 8允許我們給接口添加一個非抽象的方法實現,只需要使用 default關鍵字即可,這個特徵又叫做擴展方法。
二、Lambda 表達式
在Java 8 中你就沒必要使用這種傳統的匿名對象的方式了,Java 8提供了更簡潔的語法,lambda表達式:
Collections.sort(names, (String a, String b) -> {
return b.compareTo(a);
});
六、訪問局部變量
可以直接在lambda表達式中訪問外層的局部變量:
七、訪問對象字段與靜態變量
和本地變量不同的是,lambda內部對於實例的字段以及靜態變量是即可讀又可寫。該行為和匿名對象是一致的:
八、訪問接口的默認方法
JDK 1.8 API包含了很多內建的函數式接口,在老Java中常用到的比如Comparator或者Runnable接口,這些接口都增加了@FunctionalInterface註解以便能用在lambda上。
Java 8 API同樣還提供了很多全新的函數式接口來讓工作更加方便,有一些接口是來自Google Guava庫裡的,即便你對這些很熟悉了,還是有必要看看這些是如何擴展到lambda上使用的。
JDK1.9 新特性
java 7 2011發佈,Java 8 2014發佈,java9發佈於2017年9月21日。
閱讀更多 JAVA熊 的文章