Java 基礎加強

靜態導入

package com.wjz;
import static java.lang.System.out;
import static java.util.Arrays.*;

import java.util.List;
public class 靜態導入 {
    public static void main(String[] args) {
        // public final static PrintStream out = nullPrintStream(); 靜態方法
        out.println("123");

        // 導入靜態屬性或方法
        String[] strings = {"a","b"};
        List<String> list = asList(strings);

        sort(strings);
    }
}

自動裝箱和拆箱

裝箱:基本類型–>包裝類型
拆箱:包裝類型–>基本類型

public class 自動裝箱和拆箱 {
    public static void main(String[] args) {
        //**** JDK 5.0 之前
        //Integer i = 10;// 不能用
        //Integer i = new Integer(10);// 可以
        //Integer i = Integer.valueOf(10);// 優雅
        //int ii = i;// 不能用
        //int ii = i.intValue();// 可用

        //**** JDK 5.0 之後
        Integer i = 10;// 裝箱,底層代碼調用 Integer i = Integer.valueOf(10);
        int ii = i;// 拆箱,底層代碼調用 int ii = i.intValue();

        //**** 應用
        List list = new ArrayList();
        /* JDK 1.5 之前
        list.add(new Integer(10));
        int j = ((Integer)list.get(0)).intValue();
        */
        //**** JDK 5.0 之後
        list.add(10);
        int j = (Integer) list.get(0);

        Integer q = null;
        //int w = q; // 空指針異常

        /*
        Java的規範指出:特定的基本類型一定得被box成相同的包裝類型。
         這些對象會被 高速緩存 以 重複 使用,並且會被當做一般對象使用。
         這些特殊的值是:
        boolean值的true和false、
         所有的byte值、
         介於-128至127的short與int值,
         以及介於\u0000與\u007F之間的任何一個char。 
         */
        Boolean boolean1 = true;
        Boolean boolean2 = true;
        System.out.println(boolean1 == boolean2); // true
        Integer i1 = 100;
        Integer i2 = 100;
        System.out.println(i1 == i2);// true
        Integer i3 = 129;
        Integer i4 = 129;
        System.out.println(i3 == i4);// false
        int i5 = 129;
        int i6 = 129;
        System.out.println(i5 == i6);// true
        int i7 = 100;
        int i8 = 100;
        System.out.println(i7 == i8);// true
        Float f1 = 0.1f;
        Float f2 = 0.1f;
        System.out.println(f1 == f2);// false
        float f3 = 0.1f;
        float f4 = 0.1f;
        System.out.println(f3 == f4);// true
    }
}

增強for循環

設計的本意:拋棄迭代器
增強型for循環 只能 遍歷 數組 和 實現了iteratable接口 的對象
語法:
for(元素類型 元素名:數組或實現了iteratable接口的對象){
}
增強for的特點:
只適合遍歷數據。
不適合修改或刪除數據。請使用普通for循環或迭代器

可變參數

底層原理,編譯器將 x… 轉換爲 x[] 數組

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章