麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

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版本以前的寫法是:



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产亚洲精品综合一区91555 | 精品一区二区三区免费视频 | 羞羞的动漫在线观看 | 日韩精品中文字幕在线观看 | 亚洲第一成人在线观看 | 中文字幕激情视频 | 国产一区二区三区在线观看视频 | 91美女视频在线观看 | 369看片你懂的小视频在线观看 | www.狠狠操.com | 久久国产精品电影 | 黄色三级三级三级 | 久色成人 | 日本看片一区二区三区高清 | av在线播放电影 | 成人精品一区二区三区中文字幕 | 国产乱淫av片免费网站 | 国产亚洲精品久久久久久大师 | 日本残忍极度灌浣肠视频 | 亚洲免费视 | 欧美18一12sex性处hd | 欧美精品成人一区二区在线观看 | 日韩电影av在线 | 国产亚洲精品视频中文字幕 | 青青草国产在线视频 | 失禁高潮抽搐喷水h | 精品国产一区二区三区久久久蜜 | 亚洲一级成人 | 萌白酱福利视频在线网站 | 亚洲第九十九页 | 99精品国产成人一区二区 | 97zyz成人免费视频 | 欧美精品一区自拍a毛片在线视频 | www中文在线 | 中文在线观看www | 李宗瑞国产福利视频一区 | av黄色片网站 | 国产一区二区三区色淫影院 | 国产一及毛片 | 一级毛片免费大片 | 叶子楣成人爽a毛片免费啪啪 |