差别在哪里.

解决方案 »

  1.   

    不是,String是个final类,没有子类
    String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。
      

  2.   

    String 字符串常量
    StringBuffer 字符串变量
      

  3.   

    string和stringbuffer的问题 大多的教材和人都说string常量不可变,stringbuffer变量可变
    并不是很好理解,如果从内存的情况来看就好理解了,
    string类型的在内存中一旦被负值那末该对象的内存区域就不可改变,而stringbuffer类型的内存区域却可以改变,举个例子:
    String str="a";
    String str=str+"b";
    上面的情况会先开辟一个内存空间存放"a"并让str引用指向“a”,在执行str+"b"的时候会再开辟一块内存空间"ab"并将str引用变量指向“ab”这块内存空间此时内存空间“a”成为垃圾StringBuffer str=new StringBuffer("a");
    StringBuffer str.append("b");
    上面的两行代码就与String不同了,先开辟一块内存“a”,在执行append方法时并不开辟新的内存空间,只是加大了内存“a”空间使其成为“ab”而且从始到终str引用的内存地址并为发生改变StringBuffer类对字符串的操作相对于String 类会节省大量的内存和系统资源,因此在对字符串有大量的操作时要使用StringBuffer类