一、switch中使用String
java7以前在switch中只能使用number或enum
现在可以使用String了:
String s = "a";
switch (s) {
case "a":
System.out.println("is a");
break;
case "b":
System.out.println("is b");
break;
default:
System.out.println("is c");
break;
}
二、try-with-resources
java7以前对某些资源的操作是需要手动关闭
现在不需要使用finally来保证打开的流被正确关闭,现在是自动完成的,会自动释放资源,确保每一个资源在处理完成后都会关闭,就不需要我们代码去close();
try (OutputStream fos = new FileOutputStream("D:/file");) {
// 不需要再次指明fos.close();
} catch (FileNotFoundException | IOException e) {
e.printStackTrace();
}
三、捕获多个异常
try {
result = field.get(obj);
} catch (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
四、泛型实例化类型自动推断
运用泛型实例化类型自动推断,对通用实例创建(diamond)的type引用进行了改进
List<String> list = new ArrayList<>();
五、增加二进制表示
Java7前支持十进制(123)、八进制(0123)、十六进制(0X12AB)
Java7增加二进制表示(0B11110001、0b11110001)
int binary = 0b0001_1001;
System.out.println("binary is :"+binary);
// 输出结果:binary is :25
六、数字中可添加分隔符
Java7中支持在数字中间增加’_'作为分隔符,分隔长int以及long(也支持double,float),显示更直观
下划线只能在数字中间,编译时编译器自动删除数字中的下划线。
int intOne = 1_000_000;
long longOne = 1_000_000;
double doubleOne = 1_000_000;
float floatOne = 1_000_000;