java - Java 中的字符串比较和字符串驻留

标签 java string equals string-comparison string-interning

什么时候应该将 String 作为对象进行比较,什么时候应该使用它们的 equals 方法?为了确定,我总是使用 equals,但这似乎不是很有效。在什么情况下我可以确定 string1 == string2 可以安全使用?

谢谢!

最佳答案

您应该几乎总是使用equals。如果满足以下条件,您可以确定 string1 == string2 会起作用:

  • 您已经确保以其他方式获得了不同的值(例如,您正在使用从集合中获取的字符串值,但出于其他原因比较它们)
  • 你知道你正在处理编译时字符串常量
  • 您自己手动插入了字符串

根据我的经验,这种情况确实不会经常发生。

关于java - Java 中的字符串比较和字符串驻留,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3885753/

相关文章:

java - 如何使用for循环计算字符串中空格分隔符的数量?

c# - 自定义类作为 C# 中字典的键不起作用

c# - Assert.ReferenceEquals() 在 Visual Studio 测试中通过 Object.ReferenceEquals() 返回 'false'

java - 将对象与对象的数组列表进行比较

java - 我不明白 Node.next 是如何工作的

java - write(java.nio.Buffer) 有什么问题,JDK 无法解析 write 中的 Buffer

java - Java 中的锁是如何工作的?

arrays - 在 iOS 中将包含范围的数组排序为字符串

c++ - int 到十六进制字符串 (C++)

java - JTable 仅在我调用 GUI() 的新实例时刷新;