日期:2014-05-20  浏览次数:20769 次

关于append的方法
public class Test03






  public static void main(String[] args)
  {
   StringBuffer s= new StringBuffer("good");
   StringBuffer s2=new StringBuffer("bad");
   test(s,s2);
   System.out.println(s);
   System.out.println(s2);
  }
  

 public atatic void test(StringBuffer s,StringBuffer s2)

  System.out.println(s);//1
  System.out.println(s2);//2
  s2=s;//3
  s=new StringBuffer("new");//4
 System.out.println(s);//5
  System.out.println(s2);//6
  s.append("hah");//7
  s2.append("hah");//8
 }
 }

这个程序不能输出怎么改??还有最后两个s.append("hah")
  s2.append("hah")为什么一个添加到了字符串里,一个没有被添加

------解决方案--------------------
为了解释方便将test方法的参数名改成a,b。代码如下
Java code
    public static void test(StringBuffer a, StringBuffer b) {
        System.out.println("1--->" + a);// 1
        System.out.println("2--->" + b);// 2
        b = a;// 3
        a = new StringBuffer("new");// 4
        System.out.println("5--->" + a);// 5
        System.out.println("6--->" + b);// 6
        a.append("hah");// 7
        b.append("hah");// 8
        System.out.println("7--->" + a);// 9
        System.out.println("8--->" + b);// 10
    }

    public static void main(String[] args) {
        StringBuffer s = new StringBuffer("good");// d1
        StringBuffer s2 = new StringBuffer("bad");// d2
        test(s, s2); // d3
        System.out.println(s);// d4
        System.out.println(s2);// d5
    }