小菜修炼之道——Java7新特性

原创
2015/08/17 12:35
阅读数 280

1、TWR 自动关闭资源

    自动关闭资源必须要注意书写规范,所有需要关闭的资源必须使用一个变量声明出来并且写在try的小括号块中,不是大括号。如下代码:

    try(  InputStream is = new FileInputStream(new File(path))    ){

        // 可能发生异常的代码

    }catch(Exception e){

        // 异常信息捕获

    }finally{

        // 自动关闭资源,无需手动处理 is

    }


2、switch 新增字符串支持

    在java7之前switch只是支持 byte short char int 枚举以及 Byte Short Char Integer,现在新增支持字符串,其实Javascript一直都支持字符串。


3、语法糖

(指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会)

    对数字常量的改进,新增二进制写法、数字可以使用下划线,编译时自动去掉下划线;比如如下代码:

    int value = 123_456_789;// 增加代码的可读性

    int value = 0b1100111;// 二进制表示数字


4、Multi-catch 在一个catch块中声明多个要捕获的异常

    try{

        // 可能发生异常的代码

    }catch(IOException | FileNotFoundException e){

        // 异常信息捕获

    }catch(Exception e){

        // 异常信息捕获

    }finally{

        // 自动关闭资源,无需手动处理 is

    }


5、final异常

    为了避免异常抛出时类型受到限制,所以JDK7推出了final异常,如下代码:

    try{

        // 可能发生异常的代码

    }catch(IOException | FileNotFoundException e){

        // 异常信息捕获

    }catch(final Exception e){

        // 异常信息捕获

        throw e;  // 这里虽然抛出的是顶层接口,但是如果使用final标记之后,就是对应真正的异常类型了

    }finally{

        // 自动关闭资源,无需手动处理 is

    }


6、钻石语法,也就是在泛型简化了泛型的初始化语法

Map<String,String> map = new HashMap<>(); 


7、简化变参方法调用

可变参数的使用,以及泛型自动告警,这些都稍有改动。

@SafeVarargs  

public static <T> T useVarargs(T... args) {  

    return args.length > 0 ? args[0] : null;  

}  

VarargsWarning.useVarargs(new ArrayList<String>()); 



注意:不仅仅是需要了解新增的语法,而是要去深入的认识实现这些新特性的原因和方式!


展开阅读全文
打赏
0
6 收藏
分享
加载中
更多评论
打赏
0 评论
6 收藏
0
分享
返回顶部
顶部