首页 > 代码库 > 【Java面试题】6 判断下面代码是否有问题
【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",保证程序的简洁
【Java面试题】6 判断下面代码是否有问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。