
StringBuffer与StringBuilder的区别
一、String,StringBuffer与StringBuilder
String字符串常量
String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间。
StringBuffer与StringBuilder是字符串变量
StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象
二、StringBuffer与StringBuilder的区别
StringBuffer:可变字符串、效率低、线程安全;
StringBuilder:可变字符序列、效率高、线程不安全;
StringBuffer(JDK1.0)
StringBuilder(JDK5.0)
| 构造方法 | 描述 |
|---|---|
| StringBuilder() | 创建一个容量为16的StringBuilder对象(16个空元素) |
| StringBuilder(CharSequence cs) | 创建一个包含cs的StringBuilder对象,末尾附加16个空元素 |
| StringBuilder(int initCapacity) | 创建一个容量为initCapacity的StringBuilder对象 |
| StringBuilder(String s) | 创建一个包含s的StringBuilder对象,末尾附加16个空元素 |
StringBuffer
使用原则:
如果要操作少量的数据,用String ;
单线程操作大量数据,用StringBuilder ;
多线程操作大量数据,用StringBuffer。
不要使用String类的"+"来进行频繁的拼接,因为那样的性能极差的,应该使用StringBuffer或StringBuilder类