Java cheatsheet (II)

2.1. 启动垃圾回收

System.gc();

2.2. 静态成员与静态子句

可以用如下的方式对多个 static 成员指定初始化(仅执行一次)。

class ChineseMan {
    static String country;
    static String gender;
    static {
        country = "China";
        gender = "Male";
    }
}

2.3. 非静态成员初始化

对于基本类型的成员,如果未指定初始化值,则会被赋以默认值;对于引用类型的成员,将会被赋以 Null。

也可以在构造函数里面进行初始化成员值,但是这会在所有的指定初始化执行之后进行。

2.4. 数组的定义与初始化

// Ex.1
int[] a = {1, 2, 3, 4, 5};
int[] b = a;  // 引用赋值

// Ex.2
int a[] = {1, 2, 3, 4, 5};  // 另一种不推荐但合法的定义语法

// Ex.3
int[] a = new int[5];  // 指定空间赋值

2.5. 数组的打印

可以用 Arrays.toString() 来将数组展现为字符串:

int[] a = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(a);

2.6. 可变参数列表

通过如下方式定义一个可变参数的方法签名:

class Program {
    public static void main(String[] args) {
        MyUtils.display(1, "test", 5.1);
    }
}

class MyUtils {
    public static display(Object... args) {
        System.out.println(Arrays.toString(args));
    }
}

注意两点:

  1. 这里面的类型可以是任意类型,但传入的参数必须可以转换为该类型;
  2. 传入的参数可以为空,这时候这个可变参数会获得一个空数组。

2.7. 获取对象类型(的字符串)

obj.getClass();  // 返回 obj 对象的类型字符串。

2.8. 枚举类型

enum Genders {
    MALE, FEMALE, SECRET
}

class Program {
    public static void main(String[] args) {
        Genders g = Genders.MALE;
        System.out.println(g.toString());  // MALE
        System.out.println(g.ordinal());  // 0
        // 产生所有枚举成员的数组
        System.out.println(Arrays.toString(     
            Genders.values()  // [MALE, FEMALE, SECRET]
        ));
        System.out.println(Genders.values()[0].getClass());  // Class Genders

        // 使用 switch 语句(注意枚举类名必须缺省)
        switch(g) {
            case MALE: System.out.println(g); break;
            case FEMALE: System.out.println(g); break;
            case SECRET: System.out.println(g); break;
        }
    }
}

【转载请附】愿以此功德,回向 >>

原文链接:https://www.huangwenchao.com.cn/2015/02/java-cheatsheet-2.html【Java cheatsheet (II)】

发表评论

电子邮件地址不会被公开。 必填项已用*标注