1.可使用二进制形式的字面值表示,在二进制数字前添加前缀0b或0B表示,如下:
int a = 0b1011; //表示11
int b = 0B1000; //表示8
2.在数值类型的字面值中使用下划线分隔符联接,如下:
int a = 1000_0000; //表示一千万,编译的时候会去掉下划线,这样看着会比较直观
3.创建泛型实例时自动类型推断,如下:
List<String> list = new ArrayList<>();
Map<String, Integer> map = new HashMap<>();
4.switch-case语句支持字符串类型,如下:
String a = "aaa";
String b = "bbb";
switch (a) {
case "aaa" :
b = "aaa";
break;
case "bbb" :
b = "bbb";
break;
default :
b = "ccc";
break;
}
5.新增try-with-resources语句,只要实现了AutoCloseable接口就可以直接放try…catch里面,不用finally关闭就可以自动关闭了,如FileWriter继承了OutputStreamWriter,OutputStreamWriter又继承Writer,Writer实现的Closeable接口又继承AutoCloseable,所以可以放try catch里自动关闭,如下
try {
FileWriter fw = new FileWriter("a.txt");
} catch (Exception e) {
e.printStackTrace();
}
6.单个catch子句同时捕获多种异常类型,可catch多个Exception,如下:
public void save() {
try {
test();
} catch (ExceptionA a) {
a.printStackTrace();
} catch (ExceptionB b) {
b.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
7.改进使用带泛型可变参数的方法时的编译器警告和错误提示机制