Java判断两个字符串(对象是否相等)
在Java中,常见的判断两个字符串(对象)是否相等的方法有两个,一个是.equals()方法,还有一个是"=="操作符,这两个的主要区别如下:
- .equals()方法比较的是两个字符串(对象)的内容是否相等;
- “==”操作符比较的是两个字符串(对象)的地址是否相等。
例如:
public class Demo {
public static void main(String[] args) {
String str1=new String("Hello,World!");
String str2=new String("Hello,World!");
System.out.println("str1.equals(str2):"+str1.equals(str2));
System.out.println("str1==str2:"+(str1==str2));
System.out.println("str1's address:"+System.identityHashCode(str1));
System.out.println("str2's address:"+System.identityHashCode(str2));
}
}
结果如下:
str1.equals(str2):true
str1==str2:false
str1's address:440434003
str2's address:1032616650
Process finished with exit code 0
当然,在Java里,默认的类都是继承Object类的,我们翻看一下Object类的equals()方法:
public class Object{
public boolean equals(Object obj) {
return (this == obj);
}
}
从代码中可以看出,Object类的equals()方法默认采用的是“==”操作符,假如子类没有重写Object的equals()方法,那么当子类的对象在进行比较的时候也会默认采用equals()方法,因此有时候我们有必要重写equals()方法。
标签:相等,Java,str2,str1,Object,equals,System,字符串 From: https://www.cnblogs.com/xiaomitu/p/17124282.html