JAVA中==和equals的区别

pengpeng107 2008-03-28 09:52:07
JAVA中==和equals的区别 最好搞个例子出来。谢谢了!!!
...全文
752 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzp0803 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 beizehao 的回复:]
equals用来比较对象的,"=="用来比较基本类型的值,但是"=="也可以用来比较引用类型是否引用同一个对象.

==是比较两个路牌上写的地址是不是指向同一个快餐店, equals比较的是两个路牌指向的两个快餐店(无论是指向同一个还是两个不同的)是不是都是肯德基:D
[/Quote]
同意此观点
guomingqing 2010-04-08
  • 打赏
  • 举报
回复
equals比较值对象 ;==比较引用和基本类型的值
beizehao 2008-04-08
  • 打赏
  • 举报
回复
equals用来比较对象的,"=="用来比较基本类型的值,但是"=="也可以用来比较引用类型是否引用同一个对象.

==是比较两个路牌上写的地址是不是指向同一个快餐店, equals比较的是两个路牌指向的两个快餐店(无论是指向同一个还是两个不同的)是不是都是肯德基:D
kuria001 2008-04-08
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 qxx139325 的回复:]
对于简单数据类型 如int long doule 或浮点行等数据类型的比较用==进行比较 是值比较,如果是String型的用==进行
比较比较的是这两个String型的值所在的地址 而用equals比较 是拿这两个 String型地址里的值进行比较
[/Quote]
我也是那么想的。。。
qxx139325 2008-04-08
  • 打赏
  • 举报
回复
对于简单数据类型 如int long doule 或浮点行等数据类型的比较用==进行比较 是值比较,如果是String型的用==进行
比较比较的是这两个String型的值所在的地址 而用equals比较 是拿这两个 String型地址里的值进行比较
flysnow1638 2008-04-02
  • 打赏
  • 举报
回复
同意楼上!!!!!
wargrey 2008-03-29
  • 打赏
  • 举报
回复
以上回答都不完全正确,==是比较值的相等与否的,这个值即是变量在桟里面的内容,可能包括基本数据类型的值或引用数据类型的堆地址。而equels是对象的方法,默认情况返回的就是==的结果。但是对于引用类型这样的结果显然毫无意义,所以你需要覆盖equels方法来比较引用类型的相等性。最典型的参考是java String对象和一些集合对象。
hl8189 2008-03-29
  • 打赏
  • 举报
回复
equals用来比较对象的,"=="用来比较基本类型的值,但是"=="也可以用来比较引用类型是否引用同一个对象.
javatotheworld 2008-03-29
  • 打赏
  • 举报
回复
呵呵,==是比较两个路牌上写的地址是不是指向同一个快餐店, equals比较的是两个路牌指向的两个快餐店(无论是指向同一个还是两个不同的)是不是都是肯德基:D
================
虽然说的不具体,但是感觉很形象
小小的蚂蚁 2008-03-29
  • 打赏
  • 举报
回复
同意 3 楼
sandyhiny 2008-03-29
  • 打赏
  • 举报
回复

equals 比较的是内容,而 == 比较的是两者在内存中的地址是否相同。

  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yinyuan1987 的回复:]
简单的说吧==比较的是两个对象的栈的数据。而equals比较的是堆中的数据。
比如:int a=1;int b=2;判断a==b就为假因为a存在栈中的数据为1,b存在栈中的数据为2。不相等。
若是引用类型对象比较,就是比较他们的存在堆中的引用地址是否相同。
如:Object ob1=new Object(); Object ob2=ob1;这时equals比较两个对象就是相同的。注意:ob2=ob1。所以引用同一个地址。
而 Object ob3=new Object(); obj1.equals(obj3)就为假。…
[/Quote]

同意
eric0cn 2008-03-29
  • 打赏
  • 举报
回复
呵呵,==是比较两个路牌上写的地址是不是指向同一个快餐店, equals比较的是两个路牌指向的两个快餐店(无论是指向同一个还是两个不同的)是不是都是肯德基:D
software820830 2008-03-28
  • 打赏
  • 举报
回复
==是用来比较是不是同一个对象,同一个引用,equals是比较值的~不知道这样说对不对
  • 打赏
  • 举报
回复
简单的说吧==比较的是两个对象的栈的数据。而equals比较的是堆中的数据。
比如:int a=1;int b=2;判断a==b就为假因为a存在栈中的数据为1,b存在栈中的数据为2。不相等。
若是引用类型对象比较,就是比较他们的存在堆中的引用地址是否相同。
如:Object ob1=new Object(); Object ob2=ob1;这时equals比较两个对象就是相同的。注意:ob2=ob1。所以引用同一个地址。
而 Object ob3=new Object(); obj1.equals(obj3)就为假。因为开辟了另一个新空间。
积木 2008-03-28
  • 打赏
  • 举报
回复
equals 是用来比较对象的。。。== 用来单纯比较值的。。。。
dracularking 2008-03-28
  • 打赏
  • 举报
回复
the former is to judge if the two object references are identical.
the latter is mainly to make out whether they are equal on content for both primitive type and reference type. Sure, the original Object.equal has the same function as "==".

前者比引用 后者一般比内容 Object的原生方法equal功能同“==”

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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