A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 付左军 中级黑马   /  2012-4-21 13:03  /  2581 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

大侠们给解释下

4 个回复

正序浏览
String是不可变类,如果经常对字符串进行各种各样的修改,使用String内存开销大
StringBuffer允许修改,而不是每个不同的字符串都要生成一个新的对象
回复 使用道具 举报
StringBuffer是可变的而String是不可变的.
而且String用得多个的话会占用不同的内存.
如:String str = "bb";
str = "aa";
前一个bb的内存地址不变,当又给它赋值为aa时它又指向aa的地址.

String   s   ;
每次对s进行赋值操作是都将生成一个新的String实例;
StingBuffer   sb;
sb则不然,它始终是同一个实例
所以在经常动态的改变字符串的值是用StingBuffer效率比较高,java生成一个实例的代价较大。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马