Java基礎加強-jdk1.5的一些新特性

JDK 5.0 特性

1.靜態導入(import static 語句導入一個類中的某個靜態方法或所有靜態方法)

如: import static java.lang.Math.*;


2.可變參數

1. 只能出現在參數列表的最後

2. ...位於變量類型和變量名之間,前後有無空格都可以

3. 調用可變參數方法時,編譯器爲該可變參數隱含創建一個數組,在方法體中以數組的形式訪問可變參數


3.增強for循環 for (type 變量名:集合變量名){...}

  1.迭代變量必須在()中定義

  2.集合變量可以是數組或實現了Iterable接口的集合類

  

4.基本數據類型的自動拆箱與裝箱

Integer i1 = 10;

Integer i2 = 10;

System.out.println(i1 == i2);  (true)

( /*這些小數字(一個字節 -127~128)使用的頻率可能會比較高,所以,不必爲每個數字賦一個對象,而是第一次將這些小數字包裝成對象後,便將其緩存到一個池中,下次

要把這些小數字裝成Integer對象,就往池裏面找,池裏面有的話,就從池子裏面拿,不封裝成對象*/)

Integer i3 = 138;

Integer i4 = 138;

System.out.println(i3 == i4);  (false)



享元設計模式 (flyweight):

有很多個小的對象,對象之間有很多屬性相同,把這些小對象 變成一個對象,那些不同的屬性將其變成該大對象方法的參數,稱之爲外部狀態,相同的屬性稱之爲內部狀態

如:在編輯中的一些字母數據,不會每寫一個字母,就創建一個對象,而是創建26個對象,對應26個字母,這26個對象有很多屬性(如都是a)相同,但是位置(x座標,y座標)不同

可以爲26個對象設置一個display(int x,int y)方法,

5.枚舉(枚舉可以編譯器在編譯時就可以控制源程序中填寫非法值,普通變量的方式在開發階段無法實現這一目標)

  用普通類如何實現枚舉功能,定義一個Weekday的類來模擬枚舉功能

  1.私有的構造方法

  2.每個元素分別用一個公有的靜態成員變量表示

  3.可以有若干公有方法或一個抽象方法 例如:要提供nextDay方法必須是抽象的,採用抽象方法定義nextDay就將大量的if..else語句轉移成了一個個獨立的類

  枚舉是一種特殊的類,其中的每個元素都是該類的一個實例對象,例如可以調用WeekDay.SUN.getClass.getName 和WeekDay.class.getName().


  java5的枚舉的基本應用

  Weekday weekday = Weekday.SUN;

  weekday.xxxxx();

  public enum {SUN,MON;}

  帶有構造方法的枚舉

//1.枚舉類構造函數權限必須爲私有 2.構造函數要放到靜態變量後面

帶有抽象方法的枚舉

public abstract Light nextLight();

RED(60){

@Override

public Light nextLight() {

return GREEN;

}

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章