本帖最后由 hejinzhong 于 2014-7-23 01:40 编辑
在Object中,equals是一个方法,方法都是通过对象来调用的,而equals方法的实现是依靠==号的。
举个例子来说
- Person p1 = new Person();
- Person P2 = new Person();
复制代码
上面这两个对象因为都是new出来的,在内存中的地址不同
即 p1.equals(p2) 返回的结果是flase
也就是说,这两个对象是不同的。
其实他实现过程是这样的:
P1和P2是两个Person类型的类变量,里面存储的只是对象的地址值。
equals方法是通过比较p1和p2中的值是否相同。即两个类类型变量(存储的值)指向的内存地址是否相同。
在String类中,由于重写equals方法
- String a = new String("abc");
- String b= new String("abc");
复制代码
在这里equals方法重写之后比较的是a,b指向的对象中内容是不是一样
而不在是a,b的值是否相同,即不是比较他们是否指向了同一个对象。
|