public class test
{
public static void main(String[] arg)
{
String s = "a";
StringBuffer sb = new StringBuffer("a");

for(int size = 0; size != 5; size++)
{
s = s + 'a';
sb.append('a');
}
System.out.println("s:" + s);
System.out.println("sb:" + sb);
}
}
输出结果:
s:aaaaaa
sb:aaaaa
这是为何?

解决方案 »

  1.   

    在我这里的运行是没有问题的啊。s:aaaaaa
    sb:aaaaaa
      

  2.   

    确实发错了public class test 

    public static void main(String[] arg) 

    String s = "a"; 
    StringBuffer sb = new StringBuffer('a'); for(int size = 0; size != 5; size++) 

    s = s +  'a '; 
    sb.append( 'a '); 

    System.out.println("s:" + s); 
    System.out.println("sb:" + sb); 

    } 问题已解决
    new StringBuffer('a'); 这个构造函数用的是
    new StringBuffer(int a);
    也就是说分配了一个int a大小的 空间但是没有任何字符串