本文主要是介绍java以@开头的生成的一串字符是什么意思呢?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://www.zhihu.com/question/311287596/answer/1136567945
"@"后面那串数字是对象的散列值。每个Java对象都有一个散列值,这个值可以通过hashCode方法计算。对象的散列值配合equals方法使用,作为HashMap等数据结构的键。为了保证正确性,对散列函数hashCode的要求是,1)对同一个对象的多次hashCode调用应返回相同的值(前提是equals中用于比较的字段没有发生变化);2)如果两个对象用equals比较时返回真,那么它们的散列值必须相等,所以一个类必须同时重写hashCode和equals方法。
Object类的默认散列函数通常会求方便直接返回对象的"内部地址",但是JVM完全可以返回其他的值。
2 人赞同了该回答
public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());}
作者:李晓峰
链接:https://www.zhihu.com/question/311287596/answer/1136567945
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
这篇关于java以@开头的生成的一串字符是什么意思呢?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!