正确的写法:
"".equals(str) 或
str == null || str.equals("")
推荐使用:
str == null || str.isEmpty()
错误的写法:
str.equals("")
原因:
null不是对象,null没有分配内存空间
null表示这个字符串不指向任何的东西,那么没有是否为空的问题,因为引用的实例对象都没有。这时候如果你调用它的方法,那么就会出现空指针异常。
直观一点:null是.不出来equals这个方法的。
延伸:
String 的 equals 方法性能大于直接比较 length
public int length() {
return value.length;
}
这个value是个char[]数组;
而equals方法 先判断对象指向地址,在判断是否String类型,最后循环比对char[]每个字符
所以推荐使用jdk1.6 出来的isEmpty方法;