在进行字符串比较值是否相等时时如果常量和变量比较,最好将常量放在左边,否则可能会出现空指针异常。下面看代码
package cn.trho.demo04;
public class Demo03 {
public static void main(String[] args) {
String str = null;
System.out.println("abc".equals(str));
}
}
运行结果
false
package cn.tfkajs.demo04;
public class Demo03 {
public static void main(String[] args) {
String str = null;
//System.out.println("abc".equals(str));
System.out.println(str.equals("abc"));
}
}
运行结果
Exception in thread "main" java.lang.NullPointerException
at cn.tedu.demo04.Demo03.main(Demo03.java:8)
因为一个null自身是没有的存储空间中是没有任何方法以及属性的,所以一旦赋值为null的话再去调用方法会出现空指针异常。例如:
String str = null;
str.hashCode();
这样也会发生空指针异常。
总结:在开发中遇到字符串常量和变量比较时最好将常量放在左边,这样可以避免空指针异常
有关空指针异常的详细分析可以看另一篇:
添加链接描述