`
xianglachigen
  • 浏览: 11410 次
社区版块
存档分类
最新评论

黑马程序员——使用String类时的一个注意事项

阅读更多
android培训java培训、期待与您交流!      

  因为String是不可变对象,如果多个字符串进行拼接,将会形成多个对象,这样可能会造成内存溢出,会给垃圾回收带来工作量,如下面的应用最好不要用String
   
public class StringTest
{
public static void main(String[] args)
{
String s = "";

for(int i = 0; i < 100; i++)
{
//以下语句会产生大量的对象
//因为String为不可变对象
//存在大量的对象相加或者相减的时候,一般不建议使用String
//建议使用StringBuffer 或 StringBuilder 优先选择StringBuilder
//采用JProbe可以对内存进行分析


s += i;
}
}
}

再介绍下StringBuffer 和 StringBuilder

StringBuffer称为字符串的缓冲区,它工作的原理是:预先申请一块内存,存放字符列,如果字符序列满了,会重新改变缓存区的大小,以容纳更多的字符序列。StringBuffer是可变对象,这个是和String最大的不同。

StringBuilder和StringBuffer的区别是StringBuffer中所有的方法都是同步的线程安全的,但速度慢,StringBuilder的速度快,但是不是线程安全的,这也是为什么上面要首选StringBuilder


---------------------- android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima----------------------
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics