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就不可能是equal.correct me
https://stackoverflow.com/questions/18565701
复制相似问题