== 和 Object.equals 的区别
==符号:
1、基本类型比较,只有当两个类型的值相等时,才会返回true
int n = 3;
n == 3; // true
n == 4; // false
2、引用类型比较(是否指向同一个对象)
Person p1 = new Person();
Person p2 = new Person();
p1 == p2; // false, p1和p2指向两个不同的对象
Person p2 = p1;
p1 == p2; // true,p1和p2指向同一个对象
equals:只能比较引用类型,比较是否指向同一个对象
Person p1 = new Person();
Person p2 = new Person();
p1.equals( p2 ); // false,两个对象引用分别指向不同对象
Person p2 = p1;
p1.equals( p2 ); // true,p1和p2指向同一个对象
注意:对类File,String,Data和包装类(Wrapper Class)来说,比较的是内容而不考虑是否是同一个对象。
String s1 = new String( "abc" );
String s2 = new String( "abc" );
s1 == s2; // false,对象不同,或者说对象的内存地址不同
s1.equals(s2); // true,内容相同