string t是定长字符串;
StringBuffer 是不定长字符串;
t="sdf"+"werte"+"2345435";相当于把变量t指想了新的内存空间 。StringBuffer a
a.append("sdf");还是在指想原来的内存空间,不过是对字符串操作了。

解决方案 »

  1.   

    如果你的字符串经常会发生改变,那么最好是用StringBuffer,如果一旦定义了之后就很少改变这个字符串的值,那么就用String
    因为一旦定义了一个String之后,如果改变它的内容,那么需要在内存地址中新建一个位置给新的内容, 这样的话,如果改动很频繁的话,就会对内存造成很大的消耗,而用StringBuffer的话,不管你怎么改动里面的内容,在内存中只是那么一块,不用消耗多的内存
      

  2.   

    String的内容是不可改变的,每次赋新值都会产生一个新的String句柄来指向新值,而StringBuffer的值是可以改变的。而且StringBuffer中有很多方法,使插入或替换字符(串)等操作变得更方便。
      

  3.   

    StringBuffer类允许用户创建可以以各种方式修改的String对象,它语描述字符串常量的String类不同,当用户使用StringBuffer类的字符串时,用户并没有创建一个新的String对象,而是直接操作原字符串本身,所有操作逗直接发生在包含该字符串的缓冲区上。修改String类时并不实际改变String对象,它创建一个额外的String对象,用来具体实现要求的修改,也就是说String适用于字符串常量一经创建就不再修改的字符串,StringBuffer适合需要做许多操作的字符串。
      

  4.   

    那就是说,如果这个变量要在一个循环中用,最后是用StringBuffer了?