【Java面试题】6 判断下面代码是否有问题

1.    if(username.equals(“zxx”){}
2. int x = 1;
return x==1?true:false;

1.一个变量直接调用equals方法会给程序带来安全隐患,直接调用equals方法可能会抛出NullPointerException异常。为了防止程序抛出异常在调用equals方法之前要先判断一下是否为空。

if( username!=null && username.equals(“zxx”){}这样写才完整。

public class Test12 {
public static String username;
public static void main(String[] args) {
/*if(username.equals("zxx")){
System.out.println("haha"); false Exception in thread "main" java.lang.NullPointerException

}*/                                        at zhongqiu.test.Test12.main(Test12.java:6)

        /*if( username!=null && username.equals("zxx")){
System.out.println("haha"); true
}*/
if( "ss".equals(username)){
System.out.println("haha"); true
}
}
}

username有可能为null,就会抛出空指针异常,
更好的写法是: if("zxx".equals(username){} ,

username.equals();如果username是空的话,系统就不认他是一个string,此时调用equals就报错了。

但是把string作为参数的话,是没有问题的

2,第二个 return x==1?true:false 这样写纯属多余

因为 x==1已经是个布尔值了。所以去掉"?true:false",保证程序的简洁

上一篇:Microsoft-PetSop4.0(宠物商店)-数据库设计-Sql


下一篇:从Angular2路由引发的前后端路由浅谈