StringBuffer和StringBuilder
一、String类
String类是不可变类,即String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。
二、StringBuffer 和 StringBuilder 类
当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。
2.1 StringBuilder
StringBuilder类代表可变字符串对象。当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、等方法可以改变这个字符串对象的字符序列。一旦通过StringBuilder生成了最终想要的字符串,就可以调用它的toString()方法将其转换为一个String对象。
StringBuilder sb = new StringBuilder("Hello"); // 追加 sb.append(" World"); // 指定位置插入 sb.insert(6, "Beautiful "); // 删除子串 sb.delete(6, 16); // 反转 sb.reverse(); // 最后要转换为字符串 String result = sb.toString();
2.2 StringBuffer
StringBuffer对象则代表字符序列可变的字符串,实际上,StringBuffer和StringBuilder基本相似,两个类的构造器和方法也基本相同。
2.3 对比
StringBuffer是线程安全的
StringBuilder则没有实现线程安全功能,所以性能略高(一般不要求线程安全时建议使用StringBuilder)