首页 > 其他 > 详细

String拼接方式

时间:2020-03-01 16:22:14      阅读:50      评论:0      收藏:0      [点我收藏+]

String 字符串的拼接方式有以下几种:“+”号拼接、concat()、StringBuilder、StringBuffer

先说结论,就性能方面而言,建议使用顺序为 StringBuilder > StringBuffer > concat() > "+"

 

StringBuilder 和 StringBuffer 都是可变字符串,但StringBuilder不是线程安全的,适用于单线程环境,StringBuffer 是线程安全的,用于多线程环境。

两者的实现是封装一个可修改的字符数组,字符数组中可以有空位置未被使用,有实例变量记录已使用的字符个数,append方法会直接拷贝字符到内部的字符数组,如果长度不够还可以拓展。

StringBuilder 方法的实现

技术分享图片

StringBuffer 在方法中加上synchronized关键字,即加锁保证线程安全。

技术分享图片

“+”号拼接实现原理是将String转成了StringBuilder后,使用其append方法进行处理的。

1 String str0 = "a";
2 StringBuilder sb = new StringBuilder();
3 sb.append(str0).append("b");
4 String str1 = sb.toString();

 

concat() 拼接首先创建一个字符数组,长度是已有字符串和待拼接字符串的长度之和,再把两个字符串的值复制到新的字符数组中,并使用这个字符数组创建一个新的String对象并返回。

经过concat方法,其实是new了一个新的String。

 

从0到10万的所有数字进行拼接,得到如下结果,可以看到StringBuilder效率最高

技术分享图片

 

String拼接方式

原文:https://www.cnblogs.com/pengwuliang/p/12390095.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!