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,保证程序的简洁