黑马程序员技术交流社区

标题: ???String 和StingBuffer的区别?? [打印本页]

作者: 付左军    时间: 2012-4-21 13:03
标题: ???String 和StingBuffer的区别??
大侠们给解释下
作者: 徐鑫    时间: 2012-4-21 13:06
StringBuffer是可变的而String是不可变的.
而且String用得多个的话会占用不同的内存.
如:String str = "bb";
str = "aa";
前一个bb的内存地址不变,当又给它赋值为aa时它又指向aa的地址.

String   s   ;
每次对s进行赋值操作是都将生成一个新的String实例;
StingBuffer   sb;
sb则不然,它始终是同一个实例
所以在经常动态的改变字符串的值是用StingBuffer效率比较高,java生成一个实例的代价较大。

作者: 邵中国    时间: 2012-4-21 14:39
String是不可变类,如果经常对字符串进行各种各样的修改,使用String内存开销大
StringBuffer允许修改,而不是每个不同的字符串都要生成一个新的对象




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2