java中的java5.0的新特性1(J2SE入門21)

來源:互聯網
上載者:User

java5.0的新特性

自動裝箱和自動拆箱
自動封箱和自動拆箱,它實現了簡單類型和封裝類型的相互轉化時,實現了自動轉化。

自動封箱解箱只在必要的時候才進行。還有其它選擇就用其它的
byte b     -128~127
Byte b     多一個null

簡單類型和封裝類型之間的差別
封裝類可以等於null  ,避免數字得0時的二義性。
Integer i=null;
int ii=i;  會拋出NullException 異常。
相當於 int ii=i.intValue();
Integer i=1;相當於Integer i=new Integer(1);





在基礎資料型別 (Elementary Data Type)和封裝類之間的自動轉換

<5.0之前>
Integer i=new Integer(4);
int  ii= i.intValue();

<5.0之後>
Integer i=4;
Long l=4.3;

靜態引入
靜態成員的使用,使用import static 引入靜態成員,也就是可以用靜態引入是匯入包中的某個類的靜態成員,在使用時不用再寫類名。
很簡單的東西
例子:
<沒有靜態匯入>

Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));

<有了靜態匯入>

import static java.lang.Math.*;
sqrt(pow(x, 2) + pow(y, 2));

其中import static java.lang.Math.*;就是靜態匯入的文法,它的意思是匯入Math類中的所有static方法和屬性。這樣我們在使用這些方法和屬性時就不必寫類名。

需要注意的是預設包無法用靜態匯入,另外如果匯入的類中有重複的方法和屬性則需要寫出類名,否則編譯時間無法通過。

增強for迴圈( for each )
for-each迴圈實現了對數組和集合的便利的統一,解決遍曆數組和遍曆集合的不統一。

import java.util.*;
import java.util.Collection;

public class Foreach{
private Collection<String> c = null;
private String[] belle = new String[4];
public Foreach(){
belle[0] = "西施";
belle[1] = "王昭君";
belle[2] = "貂禪";
belle[3] = "楊貴妃";
c = Arrays.asList(belle);
}

public void testCollection(){
for (String b : c){
System.out.println("曾經的風化絕代:" + b);
}
}
public void testArray(){
for (String b : belle){
System.out.println("曾經的青史留名:" + b);
}
}
public static void main(String[] args){
Foreach each = new Foreach();
each.testCollection();
each.testArray();
}
}


對於集合類型和數群組類型的,我們都可以通過foreach文法來訪問它。上面的例子中,以前我們要依次訪問數組,挺麻煩:

for (int i = 0; i < belle.length; i++){
String b = belle[i];
System.out.println("曾經的風化絕代:" + b);
}


現在只需下面簡單的語句即可:

for (String b : belle){
System.out.println("曾經的青史留名:" + b);
}

對集合的訪問效果更明顯。以前我們訪問集合的代碼:

for (Iterator it = c.iterator(); it.hasNext();){
String name = (String) it.next();
System.out.println("曾經的風化絕代:" + name);
}

現在我們只需下面的語句:

for (String b : c){
System.out.println("曾經的風化絕代:" + b);
}

for each的缺點:
在以前的代碼中,我們可以通過Iterator執行remove操作。

for (Iterator it = c.iterator(); it.hasNext();){
it.remove();
}

但是,在現在的for-each版中,我們無法刪除集合包含的對象。你也不能替換對象。
同時,你也不能並行的for-each多個集合。所以,在我們編寫代碼時,還得看情況而使用它。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.