Java对象的引用中存放的到底是对象的首地址还是散列码?
是这样的,Java对象都有一个属性是hashcode,这个是object的属性,而所有对象都继承自object类.就是说银河一个java对象都有这个值.
这个值是干什么用的呢?这个值主要是用来标识对象的唯一性的,比如你有个类叫做A类,有两个实例化对象A a = new A(); A b = new A();这个时候,如果想比较a和b是不是一个对象?怎么比?就需要调用equals方法,equals方法默认的就是通过hashcode这个值来比较.
那么什么时候equals方法是返回true呢?默认的情况是只有当两个比较对象(这里是a,b)是一个对象的时候,所谓一个对象就是引用的一个地址空间内的对象(你也应该知道,java对象其实都是jvm内存中对象的一个引用).
而这个hashcode存储的正是当前变量引用的对象的地址!
希望你明白了,切记想问题应该要举一反三,这样才能收获更多.希望帮助了你.
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有