- 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的默认实现,就是直接使用"==",所以结果是和"=="一样的。
------解决方案--------------------
------解决方案--------------------