CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

==与equals的区别?

楼主qiuchb(秋秋)2001-11-21 13:10:00 在 Java / Web 开发 提问

==比较的是句柄值,而equals()比较的是内容。  
  名柄具体怎么理解? 问题点数:25、回复次数:6Top

1 楼ycats(加菲猫)回复于 2001-11-21 16:19:48 得分 25

你可以这么理解:  
  A==B,比较句柄,就是比较变量A,B的地址存放的东西,比如int   A=0;String   B="bbbb";那么变量A的地址方的就是0,B的地址却是放着存放"bbbb"的地址,比如是#FFFF000之类的。所以A==B就是比较0和FFFF000啦。  
  而A.equals(B),就是在A和B都是引用(对象句柄,就是存放了对象地址啦)时,比较A,B存放的地址里的内容。比如A="aaaa",b="aaaa",两个"aaaa"不管是不是同一个,A.equals(B)都是真。Top

2 楼qiuchb(秋秋)回复于 2001-11-22 09:54:59 得分 0

按你的说法:  
  String   A="",B="";时是不是应该已经分配了地址,而且应该不同吧?  
  然后A="ab";B="ab";A==B此不是也不同了?我怎么觉得比较的不是地址?Top

3 楼ycats(加菲猫)回复于 2001-11-22 10:04:03 得分 0

A="ab";B="ab"时   A==B是返回false的。Top

4 楼ycats(加菲猫)回复于 2001-11-22 10:08:40 得分 0

刚才草率了。注意,A="ab";B="ab"中的"ab"使用常量的方式,因此两个指向同一个,你要是试试以下就知道:  
  String   a=new   String("ab");  
  String   b=new   String("ab");  
  if   (a==b)System.out.println("a==b");  
  if   (a.equals(b))System.out.println("aEQb");  
  Top

5 楼KingRabbit(兔子王)回复于 2001-11-22 10:41:56 得分 0

加菲猫放精屁Top

6 楼qiuchb(秋秋)回复于 2001-11-22 10:58:04 得分 0

我觉得直接分配ab是指向同一个,但如果最先不同,后来赋值相同。这时,会相等吗?  
  还有一个:  
  我在一个程序中如果用temp=="1"是对的,但如果用temp.equals("1"),则会出错。为什么?Top

相关问题

  • equals和==的区别
  • 请问,equals()与regionMatches()有什么区别?先道声谢了!
  • 说说"==" 和 equals 的区别
  • .与->的区别
  • list()与listFiles()区别?
  • vb与vb.net 区别
  • CodeBehind 与 src区别???
  • #define 与 const 区别
  • any 与 in 的区别
  • BLOB与BFILE区别

关键词

  • 句柄
  • ab
  • 地址
  • 存放
  • equals
  • aaaa
  • 同一个
  • 比如
  • 不同
  • 就是

得分解答快速导航

  • 帖主:qiuchb
  • ycats

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo