关于java中的hashCode()方法
2014-05-06 11:06
357 查看
String str1 = new String("你好"); String str2 = new String("你好"); System.out.println(str1.hashCode()); System.out.println(str2.hashCode());
这样会显示两个hashCode()相等,原因是java中的String类重写了hashCode()方法,所以equals()返回true时,hashCode也相等。实际上,只是Object类的hashCode方法才是返回根据对象的地址得出的值了,譬如我们自定义一个类,如果不重写hashCode方法,会默认从Object类里继承过来,如下:
public class Person { private String name; private int age; public static void main(String[] args) { Person p1 = new Person(); Person p2 = new Person(); System.out.println(p1.hashCode()); System.out.println(p2.hashCode()); } }这样返回的两个hashCode将肯定是不一样的
相关文章推荐
- 关于java的hashCode方法
- 关于java的hashCode方法
- 关于java的equals和hashcode方法
- 关于Java里的hashcode和equal方法
- 关于Java的Hashcode方法
- 关于java的hashCode方法
- 【原创】关于java对象需要重写equals方法,hashcode方法,toString方法 ,compareto()方法的说明
- 关于java的hashCode方法
- 关于Java中String类的hashCode方法
- 关于java的equals和hashcode方法
- 关于java的hashCode方法 .
- 关于Java中的equals()方法与hashCode()方法
- 关于java的hashCode方法
- 关于Java中String类的hashCode方法
- 关于java的hashCode方法
- [强列推荐]关于java的hashCode方法
- 关于Java中String类的hashCode方法
- 关于Java覆盖equals方法时必须覆盖hashCode方法
- 关于java中的hashCode方法
- 关于java的hashCode方法