黑马程序员技术交流社区
标题:
jdk1.7的新特性
[打印本页]
作者:
黑马张英涛
时间:
2013-1-23 10:53
标题:
jdk1.7的新特性
本帖最后由 黑马张英涛 于 2013-1-23 14:22 编辑
•Binary Literals(二进制字面值?)可以直接用二进制来表示数值(byte,short,int,long)方法是在前面加0b或0B,
如:int binary=0b1001_1110;
•Underscores in Numeric Literals(数值的数字之间可以用下划线连接),
如:long tenBillion=10_000_000_000,long bytes=0b11010010_01101001_10010100_10010010;
•Strings in switch Statements(字符串可以用在switch语句中了)
如:String name="abc";
switch(name){
case "abc":...
}
•Type Inference for Generic Instance Creation(泛型实例的创建可以通过类型推断来简化),
如:Map<String, List<String>> myMap = new HashMap<>();
•Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods(改进了在可变参数方法中传递非具体化的参数时的警告和错误)
(不太明白)
•The try-with-resources Statement(try-with-resources语句块)
如:static String readFirstLineFromFile(String path) throws IOException {
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
return br.readLine();
}
}
当该语句执行完或抛出异常时将自动调用对象的close()方法释放资源。不用finally来关闭了。
使用该语句的前提是资源实现了AutoClosable()接口,jdk1.7已经为绝大部分资源对象实现了这个接口。
该语句块中也可以有多个语句,如:
try (
java.util.zip.ZipFile zf = new java.util.zip.ZipFile(zipFileName);
java.io.BufferedWriter writer = java.nio.file.Files.newBufferedWriter(outputFilePath, charset)
) {....}
该语句块也可以有catch语句:
try (Statement stmt = con.createStatement()) {
.....
}catch(SQLException e){....}
•Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking
(catch多个异常和改进了重新抛出异常时的类型检测) 如:
catch (IOException ex) {
logger.log(ex);
throw ex;
catch (SQLException ex) {
logger.log(ex);
throw ex;
}该语句中有很多重复代码,现在可以用:
catch (IOException|SQLException ex) {
logger.log(ex);
throw ex;
}代替了。
至于重新抛出异常时的类型检测,看不太明白,求解释。
个人理解,还有不明白的地方求达人解释啊。
另外有些资料说可以对集合类直接赋值:如List<Integer> piDigits = [3, 1, 4];Map<Integer,String> map={1:"abc",2:"xxx"};
自己在1.7的环境下测试不能编译,文档里也没找到,到底有没有这回事啊?
enhance1.7.png
(47.89 KB, 下载次数: 39)
下载附件
2013-1-23 10:37 上传
作者:
王少雷
时间:
2013-1-23 13:41
不错,学习了
作者:
舒远
时间:
2013-1-23 15:09
List<Integer> piDigits = [3, 1, 4];Map<Integer,String> map={1:"abc",2:"xxx"};
这个是jdk1.7不支持的。而且jdk1.8目前所发布的版本也不支持。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2