1.二进制常量(Binary Literals)
在Java SE 7中,整型(byte, short, int和long)也可以使用二进制计数方式来表示。为了指定二进制常量,需要为数字增加一个0b或0B的前缀。
2.应用于数值常量的下划线(Underscores in Numeric Literals)
带下划线的任意数字,可以出现在数值常量的任意数字之间。利用这个特性,你可以将数值划分成不同的数字组,这样可以增加代码的可读性。
3.switch语句中支持String值 (Strings in Switch Statements)
在switch语句的表达式中可以使用String类型。
4.范型对象创建时支持类型推导(Type Inference for Generic Instance Creation)
由于编译器可以根据上下文推导出类型参数,所以可以使用空类型参数(<>)替换在调用范型类型构造函数时所要求的类型参数。
5.改进了在支持可变参数的方法中使用非具体(Non-Refiable,如通过类型参数指定)的形参时,出现的编译器警告和错误(Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods)
使用非具体的形式参数声明可变参数的方法或构造函数时,Java SE 7编译器会在声明的地上给出一个警告信息。Java SE 7引入了编译器选项-Xlint:varargs和注解@SafeVarargs和@SuppressWarnings({"unchecked", "varargs"})来禁止警告。
6.增加try-with-resources语句(The try-with-resources Statement)
try-with-resources语句是一个声明了一个或多个资源的try语句。资源是指在程序使用完成后必须关闭的一个对象。try-with-resources语句确保每个资源在该语句结束后被关闭。任何实现java.io.Closeable接口和新java.lang.AutoCloseable接口的对象,可以被看作一种资源。java.io.Inputstream,OutputStream,Reader,Writer,java.sql.Connection,Statement,ResultSet类被重新实现,并实现了AutoCloseable接口。以上提到这些类,也可以被用作是try-with-resources语句中的一种资源。
7.支持捕获多个异常,使用改进的类型检测重新抛出异常(Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking)
一个单catch块可以处理多种类型的异常。此外,编译器相比之前的实现版本,对重新抛出的异常分析的更准确。你使你可以在一个方法声明的throws语句中指定多个特定异常类型。