Updated on 2016-11-03

二进制数字

int i = 0b1111;     15

数字可读性

int i = 100_000_000;     100000000

switch 支持字符串

String s = "A";
switch (s) {
    case "A":
        System.out.println("A");
        break;
    case "B":
        System.out.println("B");
        break;
}

catch 支持多重匹配

try {
    throw new ArithmeticException();
} catch (IllegalArgumentException | ArithmeticException | NullPointerException e) {     多重匹配
    System.out.println(1);
} catch (Exception e) {
    System.out.println(2);
}

集合类型推断(Diamond)

之前List<String> list = new ArrayList<String>();
之后List<String> list = new ArrayList<>();

自动资源管理(ARM)

之前
BufferedWriter bufferedWriter = null;     资源
try {
    bufferedWriter = new BufferedWriter(new FileWriter("D:/123.txt", false));
    bufferedWriter.write("ABC");     操作
} catch (IOException e) {
    e.printStackTrace();
} finally {
    try {
        if (bufferedWriter != null) {
            bufferedWriter.close();     关闭
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

之后
try (BufferedWriter bufferedWriter1 = new BufferedWriter(new FileWriter("D:/A.txt", false));     资源被隐式声明为 final资源需实现 AutoCloseable 接口
     BufferedWriter bufferedWriter2 = new BufferedWriter(new FileWriter("D:/B.txt", false))) {
    bufferedWriter1.write("ABC");     操作
    bufferedWriter2.write("ABC");     操作
} catch (IOException e) {     try 代码块结束后资源自动调用 close() 方法关闭顺序最先声明的最后关闭
    e.printStackTrace();
}