繁体   English   中英

java中的引用相等是否意味着字符串的结构相等?

[英]Does referential equality in java imply structural equality for Strings?

换句话说,如果我有两个变量:

String s;
String t;

这样s == t ,那么s.equals(t)保证返回 true?

我认为这个答案显然是肯定的,但它是在我的教授为介绍性编程课程期末考试提供的练习考试中,他说不是。 想法?

我意识到它们可能为空,因此在引用上是相等的,但是你不能对它们调用.equals

==表示指向两个对象的指针是相同的。 这意味着对象包含在相同的内存位置。 如果这是真的,它们是同一个对象并且必须保持相同的值,所以.equals()也将是真的。

请注意,相反的情况并非如此 - .equals()为真并不能保证==为真。

唯一的例外是,如果您覆盖.equals()方法以始终返回 false,或者两个对象都为null

不,这并不意味着相同。

s1==s2将返回字符串池上s1s2上的引用是否相同,而不是它们的内容。

s1.equals(s2)将检查字符串s1s2的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM