1、定义
==:判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象。(基本数据类型比较值,引用数据类型比较内存地址);
equals:判断两个对象是否相等。当类没有覆盖equals()方法,则通过equals()比较该类的两个对象是,等价于通过“==”比较这两个对象;
而当类覆盖了equals()方法,一般,我们都覆盖equals()来返回两个对象内容是否相等,相等返回true。
2、代码示例
1 String a = new String("ab"); 2 String b = new String("ab"); 3 String aa ="ab"; 4 String bb ="ab"; 5 if(aa == bb){ //true 6 System.out.print("aa == bb") 7 } 8 if(a == b){ //false 9 System.out.print("a == b") 10 } 11 if(a.equals(b)){ //true 12 System.out.print("a equals b ") 13 } 14 if(10 == 10.0){ //true 15 System.out.print("10 ==10.0") 16 }
说明:String 中的equals()方法是被重写过的,因为Object 的equals() 方法是比较对象的内存地址额,而String 的equals()方法比较的是对象的值。