1. 程式人生 > 實用技巧 >jdk5.0新特性

jdk5.0新特性

靜態匯入

靜態匯入就是匯入靜態方法和常量,但是此方法的實用性不是很高,因為這樣做會引起程式碼衝突

靜態匯入程式碼案例:

import static java.lang.System.out;
public class YouXin03 {
    public static void main(String[] args) {
        out.println("hello");           //使用System類的靜態out方法
    }
}

自動拆裝箱

裝箱:把基本的資料型別轉換成包裝類

拆箱:把包裝類轉換成基本的資料型別

//JDK5.0的拆裝箱
public void youXinTest01() {
    Integer m 
= 10; //裝箱 int m = i; //拆箱 } //JDK1.4的拆裝箱 public void youXinTest02() { Integer m = new Integer(10); //裝箱 int a = m.intValue(); //拆箱 }

JDK向下相容問題

public class YouXin04 {
    public static void main(String[] args) {
        //因為JDK1.4不能實現自動拆裝箱,所以進入的是doSomething(double m);因為變數自動向上轉型
doSomething(10); } public static void doSomething(double m) { System.out.println("double...."); } public static void doSomething(Integer a) { System.out.println("Integer...."); } }

增強for迴圈

增強for就是對普通for(int a=0;a<10;a++){}迴圈的一種簡便寫法,同時目的也是為了替代迭代器,因為增強for底層就是迭代器的實現,但增強for迴圈有個

使用場景限制就是:只能是陣列或者是實現 Iterable 介面的集合,可以使用增強for迴圈,特別注意的是集合中List和Set集合實現了 Iterable介面,但Map沒有實現,所以Map不能使用增強for迴圈,下面舉個例子來說下使用增強for。

public class YouXin04 {
    public static void main(String[] args) {
        //建立List
        List<String> list = new ArrayList<String>();
        list.add("111");
        list.add("222");
        list.add("333");
        //增強for遍歷list集合
        for(String item : list) {
            System.out.println(item);
        }
        System.out.println("================");
        //迭代器遍歷list集合
        Iterator<String> it = list.iterator();
        while(it.hasNext()) {
            System.out.pringln(it.next());
        }
    }
}

可變引數

可變引數顧名思義就是引數的個數可變的,下面舉個例先來看看什麼是可變引數。

public class YouXin05 {
    public static void main(String[] args) {
        //呼叫同一個方法,但傳遞過去的引數卻不同
        add(10, 20);
        add(10, 20 ,30);
        add(10, 20 ,30 ,40);
    }
    public static void add(int...nums) {
        //以上呼叫都會進入到此方法
        int sum = 0;
        for(int i=0; i< nums.length; i++) {
            sum += nums[i];
        }
        System.out.println(sum);
    }

以上是可變引數的應用,但可變引數有些是需要注意的,比如:

  • 可變引數需要寫在方法的引數列表中,不能單獨定義
  • 在方法的引數列表中只能有一個可變引數
  • 方法的引數列表中的可變引數,必須放在引數最後

importstatic java.lang.System.out; publicclass YouXin03 {publicstaticvoidmain(String[] args) { out.println("hello"); //使用System類的靜態out方法 } }