一个对象的hashcode Key是什么

年华似水 2014-12-19 02:16:26
最近一直在看hashcode 方面的文章,但有个疑问,一个对象的hashcode 是依据什么计算出来的?(注:我不是说的hashcode的计算公式哈)
例如在定义一个对象 String test = "123",在调用 test.hashCode() 时,debug进去看到他的hashcode key 是 “123” ,对 123 进行公式套用
但如果一个是新对象,对他取hashcode 时,他取的hashcode key 是什么?

代码如下:

public class Test {

public static void main(String[] args) {
Test test = new Test();
int hashValue = test.hashCode();
System.out.println(" hashValue = " + hashValue);
}

}


这段代码,我debug不了,到hashcode 直接过了
...全文
296 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
烟斗老大 2014-12-19
  • 打赏
  • 举报
回复
在java里不允许直接访问内存,避免像C,C++ 还要时时考虑释放内存,内存泄露等,所以才会有JVM替你统一管理内存。 hashCode 是Object 的方法,可以理解为只要在堆中的对象 都有一个唯一标示,在某种程度上也可以理解为对象的内存地址。 hashCode 的产生,可以先从名字入手,为什么叫 hash Code呢,肯定跟散列挂上勾,因为在JVM里,也是有不同的内存区域的,一般来讲,堆、栈、方法区是大家都了解一些的,但是在堆区中,又分为好多区域,每个对象在堆中的位置是散列出来的,散列的依据是看这个对象是什么类型,还有内容等等。 如果对JVM感兴趣,可以看看 《深入理解JVM》,里面讲的很深入。
年华似水 2014-12-19
  • 打赏
  • 举报
回复
引用 1 楼 qq_23064987 的回复:
不明白
这个对象没有属性啊
wyc_ 2014-12-19
  • 打赏
  • 举报
回复
依据内容计算,内容可以是对象的属性。
qq_23064987 2014-12-19
  • 打赏
  • 举报
回复
不明白

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧