public class Test {
public static void main(String[] args) {
String username = "";
if (username.equals("zxx"))
System.out.println("相等");
int x = 1;
System.out.println(x == 1 ? true : false);
}
}
1.第一个equals
- 一个变量直接调用equals方法会给程序带来安全隐患,直接调用equals方法可能会抛出NullPointerException异常。为了防止程序抛出异常在调用equals方法之前要先判断一下是否为空。
if (username != null && username.equals("zxx"))
这样写笔记完整
public class Test {
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 }
*/
if (username != null && username.equals("zxx")) {
System.out.println("相等"); // true
}
if ("ss".equals(username)) {
System.out.println("相等"); // true
}
}
}
username
有可能为null
,就会抛出空指针异常,更好的写法是:if ("zxx".equals(username))
username.equals();
如果username
是空的话,系统就不认他是一个String
,此时调用equals()
就报错了。但是把String
作为参数的话,是没有问题的
2. 第二个System.out.println(x == 1 );
这样写纯属多余
因为 x==1已经是个布尔值了。所以去掉? true : false
,保证程序的简洁