1. 介紹
JAVA作為使用的主力語言浸颓,掌握下其歷史發(fā)展也是有必要的物臂。看看從JAVA5開始到現(xiàn)在的JAVA9有哪些變化产上。借此機(jī)會(huì)棵磷,也可以看看哪些特性我們是已經(jīng)用到的,哪些是還沒有用到的晋涣。
我們在IDEA里面也可以看到language level里面的信息仪媒,這里也大致寫了下各個(gè)版本JDK的新特性。
簡單概括下就是:
JAVA1.3:普通的原始的JAVA,基本語法相信大家都見過了
JAVA1.4:assert關(guān)鍵字
JAVA5:枚舉類型算吩、泛型留凭、自動(dòng)拆裝箱
JAVA6: @Override注解
JAVA7: <>符號(hào)、ARM支持偎巢、支持多catch
JAVA8:Lamda表達(dá)式蔼夜,類型注解等
JAVA9: 模塊化、接口中的私有方法等
下面我們更加詳細(xì)的分析下各個(gè)版本有哪些新特性压昼。
2. JAVA5新特性
2.1 泛型 Generics
引用泛型之后求冷,允許指定集合里元素的類型,免去了強(qiáng)制類型轉(zhuǎn)換窍霞,并且能在編譯時(shí)刻進(jìn)行類型檢查的好處匠题。Parameterized Type作為參數(shù)和返回值,Generic是vararg但金、annotation韭山、enumeration、collection的基石冷溃。
泛型可以帶來如下的好處總結(jié)如下:
類型安全:拋棄List钱磅、Map,使用List 秃诵、Map 給它們添加元素或者使用Iterator 遍歷時(shí)续搀,編譯期就可以給你檢查出類型錯(cuò)誤
方法參數(shù)和返回值加上了Type: 拋棄List塞琼、Map菠净,使用List 、Map
不需要類型轉(zhuǎn)換:List list=new ArrayList ();
類型通配符“?”: 假設(shè)一個(gè)打印List 中元素的方法printList,我們希望任何類型T的List 都可以被打印 ##2.2 枚舉類型 引入了枚舉類型 ##2.3 自動(dòng)裝箱拆箱(自動(dòng)類型包裝和解包)autoboxing & unboxing 簡單的說是類型自動(dòng)轉(zhuǎn)換彪杉。 自動(dòng)裝包:基本類型自動(dòng)轉(zhuǎn)為包裝類(int ——Integer) 自動(dòng)拆包:包裝類自動(dòng)轉(zhuǎn)為基本類型(Integer——int) ##2.4 可變參數(shù)varargs(varargs number of arguments) 參數(shù)類型相同時(shí)毅往,把重載函數(shù)合并到一起了。 如:
publicvoidtest(object... objs){for(Object obj:objs){