<meta charset="utf-8">
<article class="_2rhmJa">
1. 介紹
JAVA作為使用的主力語言,掌握下其歷史發(fā)展也是有必要的倡勇≈酰看看從JAVA5開始到現(xiàn)在的JAVA9有哪些變化村生。借此機會,也可以看看哪些特性我們是已經(jīng)用到的饼丘,哪些是還沒有用到的趁桃。
我們在IDEA里面也可以看到language level里面的信息,這里也大致寫了下各個版本JDK的新特性。
簡單概括下就是:
JAVA1.3:普通的原始的JAVA卫病,基本語法相信大家都見過了
JAVA1.4:assert關鍵字
JAVA5:枚舉類型油啤、泛型、自動拆裝箱
JAVA6: @Override注解
JAVA7: <>符號蟀苛、ARM支持益咬、支持多catch
JAVA8:Lamda表達式,類型注解等
JAVA9: 模塊化帜平、接口中的私有方法等
下面我們更加詳細的分析下各個版本有哪些新特性幽告。
2. JAVA5新特性
2.1 泛型 Generics
引用泛型之后,允許指定集合里元素的類型裆甩,免去了強制類型轉(zhuǎn)換冗锁,并且能在編譯時刻進行類型檢查的好處。Parameterized Type作為參數(shù)和返回值嗤栓,Generic是vararg冻河、annotation、enumeration抛腕、collection的基石芋绸。
泛型可以帶來如下的好處總結(jié)如下:
類型安全:拋棄List、Map担敌,使用List 摔敛、Map 給它們添加元素或者使用Iterator 遍歷時,編譯期就可以給你檢查出類型錯誤
方法參數(shù)和返回值加上了Type: 拋棄List全封、Map马昙,使用List 、Map
不需要類型轉(zhuǎn)換:List list=new ArrayList ();
類型通配符“?”: 假設一個打印List 中元素的方法printList,我們希望任何類型T的List 都可以被打印 ##2.2 枚舉類型 引入了枚舉類型 ##2.3 自動裝箱拆箱(自動類型包裝和解包)autoboxing & unboxing 簡單的說是類型自動轉(zhuǎn)換刹悴。 自動裝包:基本類型自動轉(zhuǎn)為包裝類(int ——Integer) 自動拆包:包裝類自動轉(zhuǎn)為基本類型(Integer——int) ##2.4 可變參數(shù)varargs(varargs number of arguments) 參數(shù)類型相同時行楞,把重載函數(shù)合并到一起了。 如:
publicvoidtest(object... objs){for(Object obj:objs){
</article>
1