加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

为什么阿里巴巴不建议在for循环中使用+进行字符串拼接?

发布时间:2019-01-31 20:17:51 所属栏目:建站 来源:Hollis
导读:副标题#e# 本文,也是对于Java中字符串相关知识的一个补充,主要来介绍一下字符串拼接相关的知识。本文基于jdk1.8.0_181。 一、字符串拼接 字符串拼接是我们在Java代码中比较经常要做的事情,就是把多个字符串拼接到一起。 我们都知道,String是Java中一个

和String类类似,StringBuilder类也封装了一个字符数组,定义如下:

为什么阿里巴巴不建议在for循环中使用+进行字符串拼接?

与String不同的是,它并不是final的,所以他是可以修改的。另外,与String不同,字符数组中不一定所有位置都已经被使用,它有一个实例变量,表示数组中已经使用的字符个数,定义如下:

为什么阿里巴巴不建议在for循环中使用+进行字符串拼接?

其append源码如下:

为什么阿里巴巴不建议在for循环中使用+进行字符串拼接?

该类继承了AbstractStringBuilder类,看下其append方法:

为什么阿里巴巴不建议在for循环中使用+进行字符串拼接?

append会直接拷贝字符到内部的字符数组中,如果字符数组长度不够,会进行扩展。

StringBuffer和StringBuilder类似,最大的区别就是StringBuffer是线程安全的,看一下StringBuffer的append方法。

为什么阿里巴巴不建议在for循环中使用+进行字符串拼接?

该方法使用synchronized进行声明,说明是一个线程安全的方法。而StringBuilder则不是线程安全的。

五、StringUtils.join是如何实现的

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读