国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

J2SE 1.5新特性簡介

2019-11-18 15:47:53
字體:
來源:轉載
供稿:網友

  java2標準版(Java 2 Platform, Standard Edition, J2SE)1.5即將正式推出,這一次的版本更新不同于以往,它帶來了很多里程碑式的革新,SUN將其綽號取名為“虎”。這一次的變革將是Java誕生以來從未有過的,它給我們帶來了耳目一新的感覺。下面我們就來欣賞一下其中的部分典型變化:



  1. 自動包裝和解包(Autoboxing and unboxing)

  代碼示例

  往一個ArrayList中加入一個整數,1.5版本以前的版本寫法是:

List list = new ArrayList();

list.add( new Integer( 10 ) );
  而在1.5版本中可以寫為:

list.add( 10 );
  因為,在1.5版本中,對一個整數進行包裝,使之成為一個Integer對象(即包裝,boxing),然后加入到一個ArrayList中的做法被認為是沒有必要的,反之,解包(unboxing)的做法也是沒有必要的,這樣的代碼只是增加了程序的文本長度而已,所以1.5版本支持了自動包裝和解包操作,對于bool/Boolean,byte/Byte,double/Double,short/Short,int/Integer,long/Long,float/Float的相應包裝/解包操作都進行了支持,從而使代碼變得簡單。

  2. 更優化的循環語句(The inhanced for loop)

  代碼示例

  一個典型的遍歷數組的循環語句,1.5版本以前的寫法是:

for ( Iterator iterator = list.iterator(); iterator.hasNext(); )

{

Integer n = (Integer)iterator.next();

...

}//for
  而在1.5版本中可以寫為:

for ( Integer n : list )

{

...

}//for
  顯然1.5版本的寫法比以前是大大簡化了,但是在需要修改集合,比如刪除其中元素時不能采用這種寫法。之所以Java1.5版本沒有象C#那樣干脆定義一個foreach要害詞,主要是因為SUN認為增加一個專門的要害詞成本太高了(too costly)。但1.4版本中就曾經增加了assert要害詞,1.5版本中也新增加了enum要害詞,因此這一解釋恐怕并不那么令人信服。
3. 參數可變的方法和PRintf

  代碼示例

  當不能確定一個方法的入口參數的個數時,以往版本的Java中,通常的做法是將多個參數放在一個數組或者對象集合中作為參數來傳遞,1.5版本以前的寫法是:

int sum(Integer[] numbers)
{
 int nSum = 0;
 for(int i: numbers)
  nSum += i;
  return nSum;
}
...
//在別處調用該方法

sum(new Integer[] {12,13,20});
  而在1.5版本中可以寫為:

int sum(Integer... numbers)

{

int nSum = 0;

for(int i: numbers)

nSum += i;

return nSum;

}

...

//在別處調用該方法

sum(12,13,20);
  顯然,1.5版本的寫法更為簡易,也更為直觀,尤其是方法的調用語句,不僅簡化很多,而且更符合通常的思維方式,更易于理解。

  1.5版本自身就有一個應用該特征的典型例子,即C風格的格式化輸出方法——printf。

  代碼示例

  輸出一個加法算式,1.5版本以前的寫法是:

int x = 5;

int y = 7;

int nSum = x + y;

System.out.println(x + " + " + y + " = " + nSum);
  而在1.5版本中可以寫為:

System.out.printf("%d + %d = %d/n", x, y, nSum);
  以上兩種寫法的輸出結構是一樣的,即“5 + 7 = 12”。

  這種改變不僅僅是形式上的,printf還可以提供更為靈活、強大的輸出功能,比如限定按照兩位整數的形式輸出,可以寫為“System.out.printf("%02d + %02d = %02d/n", x, y, nSum);”,輸出結果將是“05 + 07 = 12”。

  4. 枚舉

  代碼示例

  構建一個表示色彩的枚舉,并賦值,在1.5版本中可以寫為:

public enum MyColor{ Red, Yellow, Blue }

MyColor color = MyColor.Red;
for ( MyColor mycolor : MyColor.values() )
 System.out.println( mycolor );
  以往的Java版本中沒有enum要害詞,1.5版本中終于加入了進來,這確實是一個令人興奮的改進。此外,enum還提供了一個名為values()的靜態方法,用以返回枚舉的所有值的集合。所以,以上程序的輸出結果是把“Red”、“Yellow”、“Blue”分行輸出。

  而enum提供的靜態方法valueOf()則將以字符串的形式返回某一個具體枚舉元素的值,比如“MyColor.valueOf( “Red” )”會返回“Color.Red”。靜態方法name()則返回某一個具體枚舉元素的名字,比如“MyColor.Red.name()”會返回“Red”。類似的方法還有不少。此外,enum自身還可以有構造方法。

  5. 靜態引用

  代碼示例

  當我們要獲取一個隨即數時,1.5版本以前的寫法是:



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉禾县| 确山县| 东海县| 唐河县| 若羌县| 南雄市| 奉节县| 克山县| 巴林左旗| 阿克苏市| 白沙| 三门峡市| 石门县| 浦江县| 靖西县| 韩城市| 镇巴县| 诏安县| 广东省| 桐梓县| 永德县| 临颍县| 新竹县| 平塘县| 九台市| 马山县| 青川县| 青铜峡市| 巴里| 荣成市| 土默特右旗| 沿河| 台中市| 马龙县| 泸定县| 株洲县| 大石桥市| 都兰县| 阜宁县| 仪陇县| 石泉县|