JDK7新特性
- 二进制字面量。Java7添加二进制表示(0B11110001、0b11110001)
- 数字字面量可以出现下划线。Java7中支持在数字量中间添加’_’作为分隔符。更直观,如(12_123_456)。下划线仅仅能在数字中间。编译时编译器自己主动删除数字中的下划线。
Switch语句中可以用字符串。
例如: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; }
4.泛型简化,泛型实例化类型自动推断。
例如:Map < String, Integer > anagrams = new HashMap<>();
5.异常的多个catch合并,每个异常用‘|’隔开。
例如:public void newMultiCatch() { try { methodThatThrowsThreeExceptions(); } catch (ExceptionOne | ExceptionTwo | ExceptionThree e{ // log and deal with all Exceptions } }
6.try-with-resources语句
java7以前对某些资源的操作是需要手动关闭,如InputStream,Writes,Sockets,Sql等,需要在finally中进行关闭资源的操作,现在不需要使用finally来保证打开的流被正确关闭,现在是自动完成的,会自动释放资源,确保每一个资源在处理完成后都会关闭,就不需要我们代码去close();
在采用try-with-resources方式后,不需要再次声明流的关闭。
可以使用try-with-resources的资源有:
任何实现了java.lang.AutoCloseable接口和java.io.Closeable接口的对象。为了支持这个行为,所有可关闭的类将被修改为可以实现一个Closable(可关闭的)接口。