stringbuffer ==, equals 请指点
Java code
package t001;
public class C01 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer b1 = new StringBuffer("abc");
StringBuffer b2 = new StringBuffer("abc");
System.out.println(b1==b2); //false
System.out.println(b1.equals(b2)); //false
StringBuilder b3 = new StringBuilder("def");
StringBuilder b4 = new StringBuilder("def");
System.out.println(b3==b4); //false
System.out.println(b3.equals(b4)); //false
}
}
为什么都是false?
尤其是用equals 方法也是false
谁提点一下 ? 谢谢
------解决方案--------------------"==" 是false是因为比较的是两个不同的对象,地址不一样,所以是false。
"equals" 是false是因为StringBuffer类本身没有覆盖Object类的equals方法,即使用的是equals的默认实现,就是直接使用"==",所以结果是和"=="一样的。
------解决方案--------------------
------解决方案--------------------