阅读StringBuilder源码发现其并没有重写equals方法,并且reverse()方法这是在源字符串基础上进行原地修改,故引用不变,故StringBuilder的equals方法和‘==’一样都是比较引用而不是值。
public class Main {
public static void main(String[] args) {
StringBuilder st = new StringBuilder();
st.append("1");
st.append("5");
System.out.println(st);//15
System.out.println(st.reverse());//51
System.out.println(st);//51
System.out.println(st==(st.reverse()));//true
System.out.println(st.equals(st.reverse()));//true
}
}