jdk1.8與1.6的差異和新特性


一:引言

  最近面試,有被問道jdk1.6和1.8的區別,不知道怎么回答,這里簡單總結下,期待下次回答的好一點。

二、差異

1.ArrayList使用默認的構造方法構造實例,jdk1.6默認初始化大小為10,jdk1.8為0,第一次放入值才初始化,即懶加載(細節可查看源碼)。

2.hashMap底層,jdk1.6為數組加+鏈表,jdk1.8為數組加+鏈表,但當鏈表超過8時會自動轉轉換成紅黑樹。

3.靜態代碼塊加載方式不同,jdk1.6先初始化static在執行main方法,jdk1.8為懶加載,先執行main方法,使用到了static在進行初始化。

4.jdk1.8版本switch支持String變量,jdk1.6及之前版本只支持int同類型變量,即byte,short,int,char四個類型。

三、新特性

1.接口引入default關鍵字,使用default關鍵字修飾方法可以定義具體的實現,接口可以有靜態方法。

2.引入lambda表達式,可進行函數式編程。

3.函數式接口,通過@FunctionalInterface注解,可以使用函數作為參數。

4.DateAPI進行了更新。1.8之前JDK自帶的日期處理類非常不方便,1.8改觀很多,比如日期時間的創建、比較、調整、格式化、時間間隔等。這些類都在java.time包下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM