1. 介紹
JAVA作為使用的主力語(yǔ)言,掌握下其歷史發(fā)展也是有必要的。看看從JAVA5開(kāi)始到現(xiàn)在的JAVA9有哪些變化。借此機(jī)會(huì),也可以看看哪些特性我們是已經(jīng)用到的,哪些是還沒(méi)有用到的。
我們?cè)贗DEA里面也可以看到language level里面的信息,這里也大致寫(xiě)了下各個(gè)版本JDK的新特性。
簡(jiǎn)單概括下就是:
JAVA1.3:普通的原始的JAVA,基本語(yǔ)法相信大家都見(jiàn)過(guò)了
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的基石。
泛型可以帶來(lái)如下的好處總結(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 簡(jiǎn)單的說(shuō)是類型自動(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){