今天看到一篇文章,写着stringbuffer和stringbuffder的区别,在这里写下自己的总结
可以存储字符串的变量类型其实不只有String,还有Stringbuffer和stringbuffder着两个对象
而Stringbuffer和stringbuffer是属于可变字符序列,其实也就是往这个字符串里面在某个位置插入某个字符后,对象不会发生改变,操作的还是原来的对象
在String中,如果执行 String a=a+1; 那么会在内存空间会有个地方放着a的值,会再另外的内存空间放着 1 ,最后会再把它们合并起来放到新的内存空间,此时运输结束后,原本的a变量指向的内存地址不是原本的那个了,如果对数据量处理庞大的话用string类型操作,可想而知,内存空间会被占用的更多了着算是缺点吧,需要处理少量数据的话用string确实没问题
再来说所stringbuffer和stringbuffder了,他们相对于string的话,在执行相同语句,他们会再原有的内存空间进行添加操作,不会产生新的变量,这样就不会出现内存问题
他们的与缺点:
Stringbuffder虽然执行效率高,但是线程不安全 是多线程类
Stringbuffer 执行效率低,但是线程是安全的,是单线程类(虽然我很少用到着两个,但是还是学习了)
总结建议:
String :适用于少量数据运算的情况;
Stringbuffder: 适用于单线程下操作大量数据操作;
Stringbuffer:适用于多线程下操作大量数据;