JDK 1.7特性
jdk1.7 新特性 下面是Java 1.7 里新出现的功能的一些用法例子: 1、对集合的支持 创建List / Set / Map 时写法更简单了。 List String> list = [item]; String item = list[0]; Set String > set = {item}; Map String,Integer > map = {key : 1}; int value = map[key]; 2、对资源的自动回收管理 下面的代码看起来有点麻烦 … 不是吗? BufferedReader br = new BufferedReader(new FileReader(path)); try { return br.readLine(); } finally { br.close(); 相信你一定会喜欢下面这种写法。 try (BufferedReader br = new BufferedReader(new FileReader(path)) { return br.readLine(); 3、泛型实例创建过程中类型引用的简化 当声明你的对象的接口是,你肯定是不想重复指明泛型类型。 看看下面的这种写法多好呀… MapString,String> hello = new Map(); 1Map hello = new Map();4、在数字中使用下划线 int billion = 1_000_000_000; 1int billion = 1_000_000_000; 我不知道这个能有多少用处。 5、对字符串进行switch case String s = "test"; switch (s) { case "test" : System.out.println("test"); case "test1" : System.out.println("test1"); break ; default : System.out.println("break"); break ; } 注意:在把字符串传进Switch case之前,别忘了检查字符串是否为Null。 6、二进制符号 你可用作二进制字符前加上 0b 来创建一个二进制类型。 int binary = 0b1001_1001; 7、一个catch里捕捉多个异常类型 try { Here comes your code....} catch(IOException | NullPointerException | ..........) { 8、语法上支持集合,而不一定是数组 final List<Integer> piDigits = [ 1,2,3,4,5,8 ]; 9、新增一些取环境信息的工具方法 File System.getJavaIoTempDir() // IO临时文件夹 File System.getJavaHomeDir() // JRE的安装目录 File System.getUserHomeDir() // 当前用户目录 File System.getUserDir() // 启动java进程时所在的目录 9、 Boolean类型反转,空指针安全,参与位运算 Boolean Booleans.negate(Boolean booleanObj) True => False , False => True, Null => Null boolean Booleans.and(boolean[] array) boolean Booleans.or(boolean[] array) boolean Booleans.xor(boolean[] array) boolean Booleans.and(Boolean[] array) boolean Booleans.or(Boolean[] array) boolean Booleans.xor(Boolean[] array) 10、安全的加减乘除 int Math.safeToInt(long value) int Math.safeNegate(int value) long Math.safeSubtract(long value1, int value2) long Math.safeSubtract(long value1, long value2) int Math.safeMultiply(int value1, int value2) long Math.safeMultiply(long value1, int value2) long Math.safeMultiply(long value1, long value2) long Math.safeNegate(long value) int Math.safeAdd(int value1, int value2) long Math.safeAdd(long value1, int value2) long Math.safeAdd(long value1, long value2) int Math.safeSubtract(int value1, int value2)