【发布时间】:2013-04-28 08:17:42
【问题描述】:
System.out.print("a".replace('a','1')=="a".replace('a','1'));
true 是预期的,因为 replace() 返回字符串,并且可以使用 == 进行字符串比较。
但是上面的代码打印出false。解释?
【问题讨论】:
-
您不应该将 java 中的字符串与
==进行比较。它检查它们的引用是否相同,而不是它们的值。 -
我通过上面 Nizet 爵士的帖子了解了 String Interning 的概念。这就是
S.O.Pln ("a"=="a");返回true的原因。感谢大家的时间和合作。 :)
标签: java return-value equals-operator