【发布时间】:2013-09-05 02:51:23
【问题描述】:
class strb
{
static public void main(String...string)
{
StringBuilder s1 = new StringBuilder("Test");
StringBuilder s2 = new StringBuilder("Test");
System.out.println(s1);
System.out.println(s2);
System.out.println(s1==s2);
System.out.println(s1.equals(s2)); //Line 1
System.out.println(s1.toString()==s2.toString()); //Line 2
if(s1.toString()==s2.toString())System.out.println("True"); //Line 3
}
}
输出是
Test
Test
false
false
对 .equals 有一个简短的问题。
无论对象内容如何,.equals 是否仅在两个对象引用都指向同一个对象时才返回 true ?
编辑:现在我了解了关于.equals 的部分,但是为什么第2 行和第3 行也没有返回true?
编辑:我相信== 会查看引用变量的地址,因此 s1 和 s2 不能相等。如果我的假设不正确,请纠正我
【问题讨论】:
标签: java