对象的相等与指向它们的引用相等,两者有什么不同?

如题所述

首先,对象在内存堆上,引用在内存栈上(理解为线和气球的关系)
对象相等表示2个是同一对象,即同一快内存,而引用相等,只是2个引用的地址值相等,都指向的堆上对象的地址
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-17
可以像楼上那样理解
其实 对象的相等 比的是内存中存放的内容是否相等
而 引用相等 比较的是他们指向的内存地址是否相等本回答被提问者采纳
第2个回答  2011-11-17
对象相等是用对象的equals()进行判断的
引用相等说明两个不同的引用指向了同一个对象
例如:
Long value = new Long(100);
Long other = new Long(200);
Long vp1 = value;
Long.vp2 = value;
System.out.println(vp1.equals(vp2));
System.out.println(vp1==vp2?"true":"false");
vp2 = other;
System.out.println(vp1.equals(vp2));
System.out.println(vp1==vp2?"true":"false");
相似回答