mamaoyuan625 发表于 2013-2-5 01:00:33

java.lang.StringBuffer和StringBuilder的用法小结:

public class Test {public static void bufferReplace(StringBuffer text) {text = text.append("C");System.out.println("还是原来的内存区域:" + text);}public static void main(String args[]) {StringBuffer textBuffer = new StringBuffer("java"); bufferReplace(textBuffer); /** * 结果:javac * 说明:StringBuffer是可变的,所以,当追加字符串时,还是在原来的对象上增加,故在打印时,就变成了javac了, */ StringBuffer textBuffer2 = new StringBuffer("java");StringBuffer a = new StringBuffer("a");StringBuffer b = new StringBuffer("a");System.out.println("a.equals(b): " + a.equals(b));//falseSystem.out.println(a == b); //false} 
重点: 关于这两个false,按照常理,比如说String的话,答案肯定是true 和 false  ,为什么StrngBuffer和StringBuilder都是false呢,查了一下JDK文档,原来这两个自身都没有equals()方法,是从Object中继承来的,所以StringBuffer和StringBuilder如果要比较值的话,只能这样
System.out.println(a.toString().equals(b.toString())); 
结果:true
 
 
页: [1]
查看完整版本: java.lang.StringBuffer和StringBuilder的用法小结: