Java字符串的拼接方式和效率比较

在Java中,对于字符串的拼接操作,有以下几种方式,分别是 String中的“+”、concat()方法,StringUtils.join()方法,StringBuffer中的append()方法,StringBuilder中的append()方法。

String中的“+”运算符如下所示:
在这里插入图片描述
String中的concat()方法如下所示:
在这里插入图片描述
StringUtils.join()方法如下所示:
在这里插入图片描述
StringBuffer中的append()方法如下所示:
在这里插入图片描述
StringBuilder中的append()方法如下所示:
在这里插入图片描述

1、用+的方式效率最差,concat由于是内部机制实现,比+的方式好很多。
2、Join和StringBuffer比较,相差不大,join的方式要更快,可见这种JavaScript 快速拼接字符串的的方式在Java 中也非常适用
3、StringBuilder的速度是最快的,但是线程不安全的。StringBuffer的速度其次,时线程安全的。
4、在编译阶段就能够确定的字符串常量,完全没有必要创建String对象或者StringBuffer对象。直接使用字符串变量的”+”连接操作效率最高(如:String str=“a”+”b”+”c”)。

补充
1、每次调用concat()方法就是一次数组的拷贝,虽然在内存中是我的处理都是原子性操作,速度非常快,但是,最后return语句回创建一个新String对象,限制了concat方法的速度。
2、StringBuffer和StringBuilder的append()方法都是继承自AbstractStringBuilder,整个逻辑都只做字符数组的加长,拷贝,到最后也不会创建新的String对象,所以速度很快。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值