字符串拼接还在傻傻的用“+”号?

	哈喽 大家好!我是相当rapper的程序员这也是我首次认真写的一篇文章,如果有任何错误请指正。

	相比大家对String 并不陌生对于String 大家一定想到的是StringBuilder 与StringBuffer。他们之间的区别就简单一说。
	
    StringBuffer:线程安全,StringBuilder:线程不安全。因为 StringBuffer 的所有公开方法都是 synchronized 修饰的,而 StringBuilder 并没有 StringBuilder 修饰。
同时我把代码给大家贴出来给大家更加详细的查看

StringBuffer
StringBuilder
接下来直接用代码示例验证一下

private static final Logger logger = LoggerFactory.getLogger(textMain.class);
    public static void main(String[] args) {
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < 20; i++) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    for (int i = 0; i < 10000; i++) {
                        stringBuffer.append("a");
                    }
                }
            }).start();
        }

        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 0; i < 20; i++) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    for (int i = 0; i < 10000; i++) {
                        stringBuilder.append("a");
                    }
                }
            }).start();
        }
        String stringBufferToStr = stringBuffer.toString();
        logger.info("stringBufferToStr is {}", stringBufferToStr.length());

        String stringBuilderToStr = stringBuilder.toString();
        logger.info("stringBuilderToStr is {}", stringBuilderToStr.length());
    }

此为输出结果`

14:16:48.056 [main] INFO com.how2java.springboot.web.textMain - stringBufferToStr is 200000
14:16:48.066 [main] INFO com.how2java.springboot.web.textMain - stringBuilderToStr is 96092
  

言归正传 说道我们主题StringJoiner此类实在工具包里面的**java.util.StringJoiner;**所以直接引入就可以。同时底层是用的StringBuilder来实现的 不是线程安全的。但效率高。用法也很简单

   StringJoiner stj = new StringJoiner("???");
        stj.add("hello");
        stj.add("world");
        stj.add("欢迎使用StringJoiner");
        System.out.println(stj);

输出为

 hello???world???欢迎使用StringJoiner

可以清楚看到 他们的连接符是用的构造方法中的参数进行拼接,是一个好用的官方工具类

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值