注意:equals方法比较的是两个对象是否相等,如果不进行重写,默认比较地址,所以当使用同一个字符串建立两个StringBuilder对象时,用equals比较得到的结果是false,因为Stringbuild没有对equals方法进行重写。但当转为String后再比较时得到的结果是true,因为String类中对equals方法进行了重写,比较的是两个对象的值,而非地址,所以结果为true。
示例:
package my.test;
public class Test
{
public static void main(String[] args)
{
StringBuilder sb = new StringBuilder("@@@");
//比较地址
System.out.println(sb.equals(new StringBuilder("@@@")));
//比较字符串的值
System.out.println(sb.toString().equals("@@@"));
}
}
输出: