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[] 数组

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