初始化为null与初始化为空区别:
-
1.String初始化为null后不是String对象,不能调用String类的方法,否则会报java.lang.NullPointerException.
-
2.初始化为空,即为"",空串是String对象,可以调用String方法。
//初始化为null,引用为空,没有分配空间
String str1 = null;
//初始化为空,引用一个空串,分配了空间,str2是实例化的对象
String str2 = "";
空指针异常解决:
在判断逻辑中需要调用String类中方法时,尽量用已知常量调用String类方法,能够避免空指针异常。
//会报空指针异常
String s = null ;
if(s.equals("") || s == null)
{
System.out.println("success");
}
//不会报空指针异常
s = null ;
if("".equals(s) || s == null) {
System.out.println("success");
}