java中的哈希码问题?
publicclassTestToString{publicstaticvoidmain(String[]args){Dogd=newDog();System.out.p...
public class TestToString {
public static void main(String []args) {
Dog d=new Dog();
System.out.println(d);
System.out.println(d.hashCode());
}
}
class Dog {
}
System.out.println(d); d默认调用object中的toString()方法
查看 API文档时object 默认输出的是 类名@+哈希码值;
System.out.println(d.hashCode()); 输出d的哈希码值
两者都是输出d的哈希码值 为什么 运行后 输出的哈希码值不一样··· 展开
public static void main(String []args) {
Dog d=new Dog();
System.out.println(d);
System.out.println(d.hashCode());
}
}
class Dog {
}
System.out.println(d); d默认调用object中的toString()方法
查看 API文档时object 默认输出的是 类名@+哈希码值;
System.out.println(d.hashCode()); 输出d的哈希码值
两者都是输出d的哈希码值 为什么 运行后 输出的哈希码值不一样··· 展开
3个回答
展开全部
Object.toString() 方法返回值:
getClass().getName() + '@' + Integer.toHexString(hashCode())
所以两者输出的hash值不一样。
getClass().getName() + '@' + Integer.toHexString(hashCode())
所以两者输出的hash值不一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两者的算法不一样!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询