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

stringBUffer是不是string的子类
差别在哪里.

------解决方案--------------------
不是,String是个final类,没有子类
String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。
------解决方案--------------------
String 字符串常量
StringBuffer 字符串变量
------解决方案--------------------
java doc
------解决方案--------------------
jdk src
------解决方案--------------------
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类
------解决方案--------------------
学习