当我研究一些开源产品的源代码时,我发现如下代码:
if (a=="cluser")
a
是一个字符串变量。字符串equals
操作可以用==
代替吗?
最佳答案
您应该几乎从不使用==
并且几乎总是使用equals()
。如果两个字符串都引用同一个对象,它只会与 ==
一起使用。 String
上有一个 intern()
方法可以为给定的字符串值返回相同的引用。字符串文字是隐式驻留的。只有当你有充分的理由时才应该使用 ==
进行字符串比较,即使这样你也需要非常小心。
唯一好的理由是性能,而且很少会很重要。只优化一次您确定您需要这样做。否则通常不值得麻烦。如果您正在查看一些开源代码,他们可能会遇到这样一种情况,即比较处于非常紧密的循环中或被非常频繁地调用,优化可以提供帮助。或者它只是过早地优化并且看起来可能是安全的。
关于java - 在JDK 1.6中,String的equals操作可以用==代替吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5839196/