有什么不同?

tjzero_sapce 2008-08-20 12:46:25
this.name=null || "".equal(this.name)

上面2种判断语句有什么不同?
...全文
69 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
radhot 2008-10-01
  • 打赏
  • 举报
回复
(原创)深入研究java对String字符串对象的创建以及管理
http://topic.csdn.net/u/20080929/02/4E0EF626-98EE-4D6D-96ED-FE40AFE8290B.html
推荐!
  • 打赏
  • 举报
回复
简单的可以这样理解:== 比较的是对象的地址 ,equal 比较的是对象的内容
fengzhiquxiang1 2008-10-01
  • 打赏
  • 举报
回复
后一个判断是否指向内容是""的地方
fengzhiquxiang1 2008-10-01
  • 打赏
  • 举报
回复
前一个不指向任何内存;后一个指向内存一个地方,那个地方的内容是""。
tjzero_sapce 2008-10-01
  • 打赏
  • 举报
回复
说的更深入一点吧, 比如说两个比较 哪个是比较的占内存 哪个是堆内存? 这样我可能会更好理解一些 呵呵
flylovejings 2008-08-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lrg30067 的回复:]
this.name==null ¦ ¦ "".equal(this.name)
这主要是用来判断name的值是否为空引用或者值为空

this.name==null是判断名为name的引用是否为空
若name的引用非空,则判断name的值是为空字符串

==和equal的最大区别:A==B比较的两对象之间的内存地址,而equal比较的是两个对象的内容,若比较的对象String,直接调用String类覆盖Object的equals进行比较,两个String对象的内容。若比较的对象是自定义类型,只是覆盖Object…
[/Quote]

学习!
lrg30067 2008-08-28
  • 打赏
  • 举报
回复
this.name==null || "".equal(this.name)
这主要是用来判断name的值是否为空引用或者值为空

this.name==null是判断名为name的引用是否为空
若name的引用非空,则判断name的值是为空字符串

==和equal的最大区别:A==B比较的两对象之间的内存地址,而equal比较的是两个对象的内容,若比较的对象String,直接调用String类覆盖Object的equals进行比较,两个String对象的内容。若比较的对象是自定义类型,只是覆盖Object的equals方法,就行了

sd5816690 2008-08-20
  • 打赏
  • 举报
回复
第一个少了一个等号

== 表示比较地址
equal 表示比较内容
jianpc 2008-08-20
  • 打赏
  • 举报
回复
this.name为空(null),或者this.name的内容为“”。

String类的equals方法被覆盖了,父类Object的equals方法比较的是内存地址,而String的equals方法比较的是存放的内容是否一致,简单说就是引号里面的字符串是否一致。

81,091

社区成员

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

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