==:
- 比较两基本类型变量的值是否相等
- 比较两个引用类型的值 即内存地址是否相等,即是否指向同一对象
equals():
- 两个对象的内容是否一致
public class TestEquals {
public static void main(String[] args){
Object obj;
String str;
String str1 = new String("qqq");
String str2 = new String("qqq");
System.out.println(str1.equals(str2)); //true
System.out.println(str1 == str2); //false
}
}
如上代码:
str1.equals(str2) :比较所指的对象的内容是否一致
str1 == str2 : 比较str1和str2 的值即内存地址是否相等,即是否是指向同一对象
String str3,str4;
str3 = "qqq";
str4 = "qqq";
System.out.println(str3.equals(str4)); //true
System.out.println(str3== str4); //true
上述代码是引用字符串常量对象,其中str3 str4 具有相同的引用,因而具有相同的实体。
PS:自定义类须重写equals(),否则比较结果总是false