/*** StringBuffer 与 StringBuilder* - StringBuffer的底层实际上是一个byte数组,* - 向StringBuffer中放字符串实际上是放到了byte数组中,* - StringBuffer的默认初始化容量是16* - 今后如果需要进行大量的字符串拼接,建议使用JDK中自带的:* java.lang.StringBuffer 或 java.lang.StringBuilder* - 如何优化StringBuffer的性能:* 在创建StringBuffer的时候尽肯能给定一个比较合理的初始化容量值,减少扩容次数,提高运行效率* - StringBuffer和StringBuilder的区别* StringBuffer方法中有synchronized关键字来修饰,所以在多线程环境下运行是安全的* StringBuilder方法在多线程环境下运行是不安全的*/
public class StringBufferText {public static void main(String[] args) {
// 创建一个初始化容量为16(byte数组的长度)(字符串缓冲器对象)StringBuffer stringBuffer = new StringBuffer();
// 用append()方法拼接字符串,append译为追加stringBuffer.append("a");stringBuffer.append(123);stringBuffer.append(3.14);stringBuffer.append(true);stringBuffer.append(100L);// 输出拼接后的结果,下面两行代码中写.toString()与不写.toString()效果是一样的。System.out.println(stringBuffer);//a1233.14true100System.out.println("+++++++++++++++++++++++++++++");System.out.println(stringBuffer.toString());//a1233.14true100// 指定初始化容量创建StringBuffer对象(字符串缓冲区对象)StringBuffer stringBuffer1 = new StringBuffer(99);stringBuffer1.append("hello");stringBuffer1.append("zhangsan");stringBuffer1.append("lisi");System.out.println(stringBuffer1);//hellozhangsanlisi}
}
class StringBuilderText {public static void main(String[] args) {
// 使用StringBuilder也是可以完成字符串的拼接StringBuilder stringBuilder = new StringBuilder();stringBuilder.append(111);stringBuilder.append("hello");stringBuilder.append(false);System.out.println(stringBuilder);//111hellofalseSystem.out.println(stringBuilder.length());stringBuilder.deleteCharAt(stringBuilder.length() - 1);//删除字符串的最后一个字符System.out.println(stringBuilder);}
}