字符串拼接的四种方式详解,代码测试

1. 使用+ 号进行字符串拼接

在这里插入图片描述

通过加号拼接原理类似于下面代码:


StringBuilder  sb = new StringBuilder();
sb.append("123");
sb.append("456");
System.out.println(sb.toString());

2. concat() 方法

在这里插入图片描述

查看源码如下:

在这里插入图片描述

源码解析:
1. 创建一个新的字符数组
2. 将两个字符串复制到字符数组当中
3. 通过new String 的方式将字符数组转为 String 返回。

3 .StringBuffer(线程安全,效率没有 StringBuilder 高)

在这里插入图片描述

4. StringBuilder(线程不安全)

在这里插入图片描述

代码测试如下:


/**
 * @author zfy
 * @version 1.0
 * @date 2022/6/16 22:42
 * @Description: 字符串拼接常用方法
 */
public class StringTest {
    public static void main(String[] args) {
        
        /*
         * 1. 通过 + 号进行字符串拼接
         */
        String s1 = "a";
        String s2 = "b";
        String s3 = s1 + "," + s2;
        //输出a,b
        System.out.println(s3);

        /*
        * 2. concat()方法
        */
        /**
         * 源码解析:
         * 1. 创建一个新的字符数组
         * 2. 将两个字符串复制到字符数组当中
         * 3. 通过new String 的方式将字符数组转为 String 返回!
         */
        String s4 = "Hello";
        s4.concat("World!");
        String s5 = s4.concat(" world");
        //Hello
        System.out.println(s4);
        //Hello world
        System.out.println(s5);

        /*
        * 3. StringBuffer(线程安全,有synchronize修饰)
        */
        StringBuffer stringBuffer = new StringBuffer();
        stringBuffer.append("a");
        stringBuffer.append("b");
        //输出ab
        System.out.println(stringBuffer);

        /*
        * 4. StringBuilder(线程不安全)
         */
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("q");
        stringBuilder.append("w");
        //输出:qw
        System.out.println(stringBuilder);

    }
}


注意:

循环体内的字符串拼接,使用StringBuilder的append()方法。因为如果使用加号进行拼接,每一次都会 new 出一个StringBuilder,造成资源浪费,效率低下。

在并发编程下,将StringBuilder换成线程安全的StringBuffer。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值