读书人

黑马软件工程师使用String类时的一

发布时间: 2012-08-30 09:55:54 作者: rapoo

黑马程序员——使用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----------------------

读书人网 >编程

热点推荐