古老得问题==和equlas问题

欧德曼 2007-09-12 04:10:28
以前貌似 把这个弄懂了 也觉得自己不会能混了 但是前两天看书发现 有些书上好象有出入
我看有得书上些得是 ==比较得是内存地址;
euqals比较得是值;
但是有的好象些的是反的;
郁闷|:

请高手明确得指点下 == 和 equals得区别;
...全文
216 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
free_zk 2007-09-12
  • 打赏
  • 举报
回复
基本数据类型是放到堆区,对象数据类型是放到栈区。
==是比较两个数据的内存地址。
equals是比较两个对象的hashcode。
yhl5115 2007-09-12
  • 打赏
  • 举报
回复
这个问题还真忘了,复习了
MySoftZone 2007-09-12
  • 打赏
  • 举报
回复
同意magic256()
tonyzhow 2007-09-12
  • 打赏
  • 举报
回复
== 比较的是内存地址 相当与指针比较(当然java中没有指针这一说法);
euqals 比较的是值,但是用户自己是可以重写的;
sxiaowei 2007-09-12
  • 打赏
  • 举报
回复
==比较得是内存地址;
euqals比较得是值;
magic256 2007-09-12
  • 打赏
  • 举报
回复
Object类中的equals和==效果一样,比较的是对象的引用,但是SUN公司在诸如String Integer...类中重写了equals,使它比较的是对象的值,所以在有些时候equals比较的是引用,有些时候比较的是值,如果你想调用equals方法的对象中的equals方法SUN没重写,那么对不起,你得自己重写,怎样判断SUN有没有重写呢?很简单,看JAVA的源码,也可以结合API文档
Reinhardt49 2007-09-12
  • 打赏
  • 举报
回复
分成基本数据和对象讨论
基本数据 对象
== 值 引用
equals 无 值
基本数据是存储在堆栈中
对象存储在动态堆中
比较的时候也就不一样勒
MSN:reinhardt_49@163.com 还有问题加我
huangyouhuangyou 2007-09-12
  • 打赏
  • 举报
回复
==是判断两个变量或实例是不是指向同一个内存空间
equals是判断两个变量或实例所指向的内存空间的值是不是相同

62,614

社区成员

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

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