前两天测试代码,测试人员告诉我,以下的代码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的效率高。
网友评论