首先看一下equal的源代码如下,
public boolean equals(Object obj)
{
if(this == obj)
return true;
if(obj instanceof String)
{
String s = (String)obj;
int i = value.length;
if(i == s.value.length)
{
char ac[] = value;
char ac1[] = s.value;
for(int j = 0; i-- != 0; j++)
if(ac[j] != ac1[j])
return false;
return true;
}
}
return false;
}
从上面的代码可以看出如果是同一个对象进行比较的话,该方法就直接返回位true,若不是同一个对象进行比较就逐个比较字符是否相等。若是相同就返回true,否则返回false。
简单的演示代码如下所示,
@Test
public void testEqual(){
String sameObj1=new String("abc");
String sameObj2=sameObj1;
Assert.assertEquals(true, sameObj1.equals(sameObj2));
String simepleObj1="abc";
String simepleObj2="abc";
Assert.assertEquals(true, simepleObj1.equals(simepleObj2));
Assert.assertEquals(true, sameObj1.equals(simepleObj2));
}