美文网首页
20170718-两段代码的异同

20170718-两段代码的异同

作者: 北风一叶 | 来源:发表于2017-07-18 09:22 被阅读5次

    前两天测试代码,测试人员告诉我,以下的代码2写法不规范

    //代码1
    public static void main(String[] args) {
            InputStream ins=null;
            if(ins!=null){
                try{
                    ins.close();
                }catch(Exception ex) {
                }
            }
        }
    //代码2
    public static void main(String[] args) {
            InputStream ins=null;
            try{
                if(ins!=null){
                    ins.close();
                }
            }catch(Exception ex) {
            }
        }
    

    按照测试人员的说法,这里的代码1是对的,代码2不对,当时就蒙了,不过还好这个是低风险,赶紧分析原因,使用字节码查看结果对比:

    代码异同.png

    从这个图中可以明显的看出在第三行上,如果是Null,代码1就直接到14行返回了,而代码2还需要到第10行,才能转到14行返回,里外差1次调用,可以分析中代码1的效率要比代码2的效率高。

    相关文章

      网友评论

          本文标题:20170718-两段代码的异同

          本文链接:https://www.haomeiwen.com/subject/ndeckxtx.html