Possible Duplicate:
what is String pool in java?
1. 我知道 == 检查两个对象是否指向相同的内存位置,并且 equals 的默认定义使用 ==进行检查,意味着两者相同。
2. String 类重写 equals 方法来检查两个字符串是否具有相同的值。
考虑 S1 =“测试”且 S2 = S1;
现在 S1 和 S2 是两个不同的对象,因此根据第 1 点 S1==S2 应该为 false 并且根据第 2 点 S1.equals(S2 ) 应该是true,但是当我在 eclipse 中运行这个小程序时,两者都返回 true。字符串对象有什么特殊之处吗,S1 == S2 也成立。
最佳答案
Consider S1 = "test" and S2 = S1; Now S1 and S2 are two different objects
不。这就是你的论点失败的地方。
您创建了一个字符串对象,并且两个变量都引用同一个字符串对象。赋值不会创建字符串的新副本。
关于java equal 和 == 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13681535/