equals 与 ==
equals只是比较值是否相同
而==则是比较两个变量 是不是同一个变量,也应时是说
要看看这两个变量是不是引用的同一个地址,
Java 中只有引用地址相同的两个变量才被视为==
如果明白值传递与地址传递的话,这个问题应该不难理解
a==null与 null==a
null放在前面就是为了避免变量为空时 引了空指针异常
如: if(a==null) 如果a 真为空时,现在就相当用调用了变量a的方法,a 都为空了还调用他的方法,当然会引发空指针异常了,但写成if(null==a)就不会了
if(str==null||str.equals("")){
return 0;}
因为在java里,String是一个对象,如果对象不存在,就返回0,或对象存在,但包含的字符为"",也返回0,上面那if就是这个意思了。
如果equals的左边是空值 会出现空指针异常
public class Test {
public static void main(String[] args) {
String string=null;
if(!string.equals(""))
{
System.out.println("---------");
}
}
}
如果把可能为空的变量放在右边 不会有事
public class Test {
2 public static void main(String[] args) {
3 String string=null;
4 if(!"ccc".equals(string))
5 {
6 System.out.println("---------");
7 }
8 }
9}
public class Test {
2 public static void main(String[] args) {
3 String string=null;
4 if(!"ccc".equals(string))
5 {
6 System.out.println("---------");
7 }
8 }
9}