字符串比较结果bw ==和String#replace用==的差异

字符串比较结果bw ==和String#replace用==的差异,第1张

字符串比较结果b / w ==和String#replace用==的差异

“ String.replace(’t’,’T’)返回对象,因此对象比较返回false。对吗?

是的,对于这种情况,您是对的。

String#replace
(或与此相关的String类的任何方法),将返回一个新的String对象(您可以猜测为什么?
Immutability )。因此,您将不得不使用
equals
方法进行比较,以比较它们的内容。

现在,在第二种情况下:-

"STring" == "STring"

您正在比较两个字符串文字。现在,由于String文字是用Java
嵌入的,所以两个文字都是相同的(从某种意义上说,它们指向相同的内存位置),因此

==
比较可以得出
true

使用

==
和进行比较的不同之
equals
处在于,
==
比较 参考值
-即对象的存储位置值,这对于两种不同的字符串对象将是不同的,就像在第一种情况下一样。而
equals
比较那些对象中的实际内容。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5475944.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存