真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

J2SE1.5的新特點(diǎn)(之一)(轉(zhuǎn))

J2SE1.5的新特點(diǎn)(之一) (轉(zhuǎn))[@more@]

j2se1.5的新特點(diǎn)XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:office" />

ASPectratio="t" v:ext="edit">2003-5-10021190.gif" o:> J2SE 的下一個(gè)版本名字叫“Tiger”在讓程序員的代碼更清楚、更短、更安全,更加容易開發(fā)的情況下不損失其兼容性。 請(qǐng)你簡(jiǎn)單談?wù)凧2SE 1.5 的優(yōu)點(diǎn)。

溫州網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。成都創(chuàng)新互聯(lián)從2013年開始到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

  新的java語(yǔ)言特點(diǎn)都基于一個(gè)目的:盡量使它們都使用一些相同的語(yǔ)法習(xí)慣并提供語(yǔ)義支持。也就是說:以前程序員需要書寫的很多語(yǔ)義編程格式的工作在新的程序中由編譯器來(lái)做。

  什么改變對(duì)程序員來(lái)說是最困難的呢?那些改變是程序員不的不面對(duì)的呢?

   一般來(lái)說,沒有什么讓人感到困難的改變,泛型編程的改變可能大些。使用泛型編程需要在聲明的時(shí)候提供附加的聲明信息。比如:
  List words = new ArrayList();
需要替換成:
  List words = new ArrayList();

這樣做的一個(gè)優(yōu)點(diǎn)是,如果你插入數(shù)組的數(shù)據(jù)類型不是字符串的話,你就可以在編譯的時(shí)候發(fā)現(xiàn)和解決這個(gè)bug。如果不使用上面的聲明,這個(gè)bug不可能在編譯的時(shí)候發(fā)現(xiàn),程序運(yùn)行后會(huì)出現(xiàn)ClassCastException 的錯(cuò)誤。
  另一個(gè)好處是:你不在需要擔(dān)心集合中的元素超出了范圍:

  String title = ((String) words.get(i)).toUppercase();

使用:

  String title = words.get(i).toUppercase();

  你能簡(jiǎn)單的介紹一下這些J2SE 1.5中改變最大的六個(gè)方面嗎?

 好的,

  • 泛型編程 – 提供集合對(duì)象的編譯時(shí)安全類型檢查。
  • 增強(qiáng) for 循環(huán)  - 編程更容易,去掉了修正了導(dǎo)致迭代出錯(cuò)的問題。
  • 裝箱/拆箱 -  原始類型(int)和封裝類型(Integer)的轉(zhuǎn)換更容易。
  • 類型安全的枚舉 – 提供了最常使用的類型安全的枚舉模式。(Effective Java, Item 21)
  • 靜態(tài)導(dǎo)入Static import - Lets you avoid qualifying static members with class names, without the shortcomings of the Constant Interface antipattern (Effective Java, Item 17).
  • Metadata – 避免編寫描述信息的代碼,實(shí)現(xiàn)“聲明”編程的模式。程序員聲明需要做什么,然后由相關(guān)的工具來(lái)完成具體的工作。

過濾一個(gè)集合中的元素,現(xiàn)在的做法和j2se1.5中的做法有什么不同呢?

現(xiàn)在的做法是:

/**

 * 從一個(gè)指定的集合中去掉一個(gè)4個(gè)字符的元素。

 */

static void expurgate(Collection c) {

  for (Iterator i = c.iterator(); i.hasNext(); ) {

   String s = (String) i.next();

  if(s.length() == 4)

  i.remove();

  }

}

上面的代碼,有些缺陷,在運(yùn)行的過程中可能出錯(cuò)。比如:在集合中如果包含一個(gè)StringBuffer類型的數(shù)據(jù)。

以后可以這樣做:

static void expurgate(Collection c) {

  for (Iterator i = c.iterator(); i.hasNext(); )

  if (i.next().length() == 4)

  i.remove();

}

  再說說增強(qiáng)的for循環(huán)吧!

  一個(gè)集合中元素的迭代,原來(lái)的做法繞的慌。J2SE1.5中大多數(shù)情況下你不需要使用Iterate 來(lái)遍歷一個(gè)集合。增強(qiáng)的for循環(huán),讓編譯器來(lái)完成具體的迭代工作。比如:
void cancelAll(Collection c) {
  for (Iterator i = c.iterator(); i.hasNext(); ) {
  TimerTask tt = (TimerTask) i.next();
  tt.cancel();
  }
}
現(xiàn)在可以這樣做:

void cancelAll(Collection c) {

  for (object o : c)

  ((TimerTask)o).close();

}

注意:上面的冒號(hào),它表示:in。在C#中或者很自然的一個(gè)替代是:foreach 和in 。但是考慮到兼容性,我們沒有那樣做。

泛型編程和增強(qiáng)的for結(jié)合后會(huì)是什么結(jié)果呢?

  上面的例子中的代碼,可以用下面的代碼表示:

void cancelAll(Collection c) {

  for (TimerTask task : c)

  task.cancel();

}

什么是裝箱?

  大家知道,java語(yǔ)言中有兩種數(shù)據(jù)類型:一些是基本數(shù)據(jù)類型,另一些是對(duì)象引用類型?;镜臄?shù)據(jù)類型無(wú)法直接放入到集合中,除非做相應(yīng)的類型轉(zhuǎn)換。這種轉(zhuǎn)換非??菰?。

據(jù)個(gè)例子:
map數(shù)據(jù)類型的key用來(lái)存儲(chǔ)單詞,value用來(lái)存儲(chǔ)單詞重復(fù)的次數(shù)。這是一個(gè)計(jì)算單詞出現(xiàn)頻率的小程序。

public class Freq {

  private static final Integer ONE = new Integer(1);

  public static void main(String args[]) {

  Map m = new TreeMap();

  for (int i=0; i

  Integer freq = (Integer) m.get(args[i]);

  m.put(args[i], (freq==null ? ONE :

  new Integer(freq.intValue() + 1)));

  }

  System.out.println(m);

  }

}

下面是采用裝箱,泛型,和增強(qiáng)的for循環(huán)后的代碼:

public class Freq {

  public static void main(String args[]) {

  Map m = new TreeMap();

  for (String word : args)

  m.put(word, m.get(word) + 1);

  System.out.println(m);

  }

}

需要注意:上面的程序假定拆箱為null的時(shí)候,值為0。

之二:

.NET/develop/read_article.asp?id=18442">http://www.csdn.net/develop/read_article.asp?id=18442



本文題目:J2SE1.5的新特點(diǎn)(之一)(轉(zhuǎn))
分享地址:http://weahome.cn/article/jjsghs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部