StringBuffer 与 StringBuilder

本文详细介绍了StringBuffer和StringBuilder在Java中的使用方法及其区别。包括它们的底层实现、默认初始化容量、性能优化策略以及在多线程环境下的安全性。通过示例展示了如何使用这两种类进行字符串拼接。
摘要由CSDN通过智能技术生成
/**
 * 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.14true100
        System.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);//111hellofalse
        System.out.println(stringBuilder.length());
        stringBuilder.deleteCharAt(stringBuilder.length() - 1);//删除字符串的最后一个字符
        System.out.println(stringBuilder);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值