Java 简单字符串比较问题

Java 简单字符串比较问题,java,string,Java,String,可能的重复项: 只是一个关于比较字符串的简单问题。为什么要使用string.equals(string2) 而不是string==string2?如果您有两个不同的字符串对象具有相同的值,谢谢。等于测试字符串的内容是否相同=测试两者是否为同一对象字符串==string2是物理比较,并比较对对象的引用。equals是逻辑比较,可以在equals()方法中定义相等,哪些对象从对象(所有类型的父对象)继承此方法。我记得在《编程导论》中谈到过引用。这就是==检查的内容吗?如果两个字符串都引用同一个对

可能的重复项:

只是一个关于比较字符串的简单问题。为什么要使用string.equals(string2)
而不是string==string2?如果您有两个不同的
字符串
对象具有相同的值,谢谢。

等于
测试字符串的内容是否相同
=
测试两者是否为同一对象

字符串==string2是物理比较,并比较对对象的引用。equals是逻辑比较,可以在equals()方法中定义相等,哪些对象从对象(所有类型的父对象)继承此方法。

我记得在《编程导论》中谈到过引用。这就是==检查的内容吗?如果两个字符串都引用同一个对象?是,完全正确。==如果两个引用都指向同一个对象,则为真。我不明白的是,为什么我在使用==而不是.equals比较字符串时从未得到错误的结果。由于字符串的内部处理,具有相同内容的两个字符串引用通常也是同一个对象,但您不能依赖于此。。。您应该始终使用
equals
进行字符串比较。AFAICT,Java将相同的字符串映射到相同的对象引用。但是,如果字符串是动态生成的,您可能会遇到问题。在搜索引擎上进行几秒钟的研究将大有帮助。另请参见右侧“相关”链接部分中列出的5-10个完全相同的副本。事实证明,Java中的字符串比较和字符串实习正是我想要的。我不明白的问题有答案。我以前没见过。感谢字符串比较和Java中的字符串实习似乎有我想要的答案。谢谢你的指点。这与字符串实习无关。字符串插入只是使
x==y
x
y
都引用相同的插入字符串(是相同的对象)时“起作用”。那就是,不要依赖它。使用
equals
进行字符串值相等测试。