(java面试题)这两段代码有什么不妥?
1、if(username.equals("zs")){}2、int a = 1;
return a == 1?true:false; 1、if("zs".equals(username)){}
2、int a = 1;
return a == 1; StringUtils.equals(username, "zs"); 1、if("zs".equals(username)){}
这里写法是不是与
if(null == username){}的写法一样,都是为了"强调"呢? 回复 4# WantCBB
不一样。
equals比较的是两个内存地址里面的值,==比较的是地址。 回复 5# dcxy0
我的意思是:
if("zs".equals(username)){} 与 if(username.equals("zs")){}
相对于
if(null == username){}与if(username == null){}
的写法一样,都是为了"强调"!!!!!
1. 有NPE的危险
2. 多此一举 回复 6# WantCBB
准确的说,应该算是:比较。把。个人拙见。。 回复 8# dcxy0
我认为是"强调"而不是"比较"
我的意思是:
一般情况下我习习惯使用if(username == null){}这种形式,有时使用if(null == username){}这种形式.这是因为一些"专家"的建议说if(username == null){}这种形式不好,他们举的例子是如果中间少写了一个"="号,语名就变成了if(username = null){},而这时编译器不会报错.而使用if(null == username){}这种形式不会出现这种情况,当少写了一个"="时语名就变成了if(null = username){}这时编译器会报错.
我认为这种定法是以前的C程序员总结的经验.请见如下C语言代码:
if(0 == intVal){}与if(intVal == 0){}这两种写法.
当少写一个"="时,它们分别变成了.
if(0 = intVal){}与if(intVal = 0){}
页:
[1]