改名換姓:意義深遠(yuǎn)的J2SE 5.0誕生史
在2004年十月J2SE 5.0發(fā)布的時候,SUN公司這樣解釋這次版本名稱不是J2SE 1.5而是J2SE 5.0的原因:“從Java誕生至今已有9年時間,而從有J2SE 算起也有5個年頭了;在這樣的背境下,將該版本號從1.5改為5.0可以更好的反映出新版的J2SE 的成熟度、穩(wěn)定性、可伸縮性、安全性。”
J2SE 的這次變更之重大和意義之深遠(yuǎn),的確也值得我們?yōu)橹寻姹咎栕儞Q到J2SE 5.0。我們再看看Sun公司網(wǎng)站對J2SE 5.0的features描述:“通過增強(qiáng)Java平臺的力量,允許開發(fā)者更容易地使用,Java編程語言的這些改進(jìn)將吸引大量各種Java開發(fā)者”,這是“Java技術(shù)發(fā)展歷程的一個重要里程碑” 。從這個描述我們可以看出,J2SE 5.0最大的目標(biāo)是通過提供易用性而吸引各種開發(fā)者(當(dāng)然包括以前的C/C++開發(fā)者) ,而它對以前版本的修改并不僅僅是API的升級,而且包括對Java語言層面的改進(jìn)。
訪問環(huán)境變量: 最初的Java語言有一個訪問環(huán)境變量的方法System.getenv(),但因為Java宣稱的”Write Once,Run AnyWhere”特性,所以在JDK1.0中去掉了這個能夠訪問平臺專有信息的方法。在J2SE 5.0中,它又來了,并有所擴(kuò)充。由此可見J2SE 5.0對編程方便性的重視程度。
泛型 J2SE 5.0提供了強(qiáng)大的泛型機(jī)制,讓程序員可以減少代碼重復(fù),這個變化應(yīng)該可以吸引小部分的C#開發(fā)人員吧。
增強(qiáng)的for循環(huán) 為了克服普通for循環(huán)的代碼臃腫特點,J2SE 5.0提供了增強(qiáng)的for循環(huán),我們現(xiàn)在可以這樣寫一個for循環(huán):
- public void printAll(Collection< String> coll)
- {
- for(String str : coll)
- {
- System.out.println(str);
- }
- }
怎么樣?是不是簡單了很多?
自動的裝箱/拆箱 我們以前手工的做裝箱(Boxing)/拆箱(unBoxing)操作時,是不是很煩?放心,J2SE 5.0提供了自動的裝箱/拆箱操作,我們現(xiàn)在可以寫如下的代碼:
- public void boxing(int i)
- {
- ArrayList< Integer> list=new ArrayList< Integer>();
- list.add(0,i);
- System.out.println(“i的值是”+list.get(0));
- }
可變參數(shù)數(shù)目 J2SE 5.0 開始支持Varargs(不固定自變量個數(shù)),J2SE 5.0中還加入了以前拋棄的枚舉和C風(fēng)格的格式化輸出,這應(yīng)該是為了吸引以前的C開發(fā)者吧。畢竟,在C開發(fā)中枚舉和格式化輸出用的是太多了。
并發(fā) J2SE 5.0中加入了java.util.concurrent包,并向集合框架中加入了Queue接口,J2SE 5.0還為各種集合提供了并發(fā)情況下的實現(xiàn)。
Properties類增強(qiáng) 由于XML的普及性應(yīng)用,J2SE 5.0為java.util.Properties類加入了從XML文件中裝載屬性和把屬性值存儲到XML文件中的方法。
Annotation功能 J2SE 5.0提供了注解(annotation)/元數(shù)據(jù)(metadata)功能,相信以后的大部分應(yīng)用產(chǎn)品都將充分利用它的注解而實現(xiàn)產(chǎn)品的各種特性。
其它 J2SE 5.0還在多線程(并發(fā)機(jī)制)、安全、國際化、UI等方面進(jìn)行了大規(guī)模的變更,使得我們能夠更方便地進(jìn)行Java開發(fā)。
其實,上面的這些變更,并不是我們程序員非要不可的內(nèi)容。我們完全可以通過自己的辦法來達(dá)到這些變更實現(xiàn)的功能。但J2SE 5.0的目標(biāo)就是讓我們程序員能夠更加方便地進(jìn)行開發(fā),所以,我們在基于J2SE 5.0開發(fā)時,應(yīng)該能夠明顯的體會到它的易用性。
【編輯推薦】