package com.test.javaSe;
public class HashCodeTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str1="ctl";
String str2=new String("ctl");
StringBuffer buf1=new StringBuffer(str1);
StringBuffer buf2=new StringBuffer(str2);
System.out.println(str1.hashCode()+"\t"+str2.hashCode());
System.out.println(buf1.hashCode()+"\t"+buf2.hashCode());
//98843 98843
//25860399 5184781
/*str1与str2的hashCode一样儿buf1和buf2却和他们不同,原因在于
String 对hashcode进行了重写
而StringBuffer却没有对哈顺从的进行重写用的是继承Object的hashcode方法
object的hashcode导出的是对象存储的地址
而String hashcode的计算方式是
int hash=0;
for(int i=0;i<length;i++)
hash=31*hash+charAr(i);
*/
}
}
HashCode
最新推荐文章于 2024-11-01 14:12:54 发布