字符串拼接的四种方式

  • 1. 使用+ 号进行字符串拼接
  • 2. concat() 方法
  • 3 .StringBuffer(线程安全,效率没有 StringBuilder 高)
  • 4. StringBuilder(线程不安全)

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,bSystem.out.println(s3);/** 2. concat()方法*//*** 源码解析:* 1. 创建一个新的字符数组* 2. 将两个字符串复制到字符数组当中* 3. 通过new String 的方式将字符数组转为 String 返回!*/String s4 = "Hello";s4.concat("World!");String s5 = s4.concat(" world");//HelloSystem.out.println(s4);//Hello worldSystem.out.println(s5);/** 3. StringBuffer(线程安全,有synchronize修饰)*/StringBuffer stringBuffer = new StringBuffer();stringBuffer.append("a");stringBuffer.append("b");//输出abSystem.out.println(stringBuffer);/** 4. StringBuilder(线程不安全)*/StringBuilder stringBuilder = new StringBuilder();stringBuilder.append("q");stringBuilder.append("w");//输出:qwSystem.out.println(stringBuilder);}
}

注意:

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

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

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

  1. python输入字符串并反序result_python字符串反转的四种方法详解

    python字符串反转的四种方法详解 这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.用red ...

  2. 字符串反转python_python字符串反转的四种方法详解

    这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.用reduce函数方法 book = 'Pyt ...

  3. 无线攻击及密码破解的四种方式详解

    随着社会的进步,现在我们在每一地方逗留都离不开无线通信,WiFi.4G等等:这就是无线领域的优势所在! 无线领域十分难以捉摸,从一点儿一点儿进步到现在,无线的安全深入人心,站在安全的角度来说无线通信一 ...

  4. 多线程实现的四种方式详解

    文章目录 一.多进程vs多线程 1. 多线程的优缺点 2. 多进程的优缺点 二.线程异步同步机制 1. 线程同步 2. 线程互斥 三.什么是锁 四.信号量VS互斥量 1. 信号量 2. 互斥量 五.示 ...

  5. JavaScript中字符串连接/拼接的四种方式

    JavaScript中连接字符串的方式有4种,分别是使用加号运算符连接.使用${}配合反引号连接.使用concat()函数连接.使用join()函数连接. 1. 使用加号运算符 示例代码如下: let ...

  6. 前端实现动画的6种方式详解

    前端实现动画的6种方式详解 一.总结 一句话总结:一般是css样式改变加setInterval 二.[前端动画]实现动画的6种方式 通常在前端中,实现动画的方案主要有6种: javascript直接实 ...

  7. MySQL批量入库的几种方式详解

    MySQL批量入库的几种方式详解 1. MySQL批量入库概述 2. Hutool封装jdbc方式 3. Jdbc直接或批量执行方式 4. MyBatis批量入库方式 5. MySQL批量入库总结 1 ...

  8. RTSP、HTTP、HTTPS、SDP四种协议详解

    RTSP.HTTP.HTTPS.SDP四种协议详解 从这篇开始我们将进入流媒体的环节,流媒体在android中有nuplayer来实现的,在开始讲解android流媒体前,我们先来讲讲流媒体传输协议, ...

  9. 内部类(四种内部类详解)

    == = = = = = = 内部类(四种内部类详解)= = = = = = = == 一.基本介绍:一个类的内部又完整的嵌套了另一个类结构.被嵌套的类称为内部类(inner class),嵌套其他类 ...

最新文章

  1. iOS: 转载CoreData数据库框架
  2. 笔记-TCPCLIENT
  3. Eclipse使用添加tomcat后,默认部署目录不是tomcat/webapps,修改方法如下
  4. [数据处理] Pandas利用groupby拆分csv
  5. nginx php访问日志配置,nginx php-fpm 输出php错误日志的配置方法
  6. 大话WinCE与WinXP应用程序开发的差异性
  7. 逻辑人渴望控制那些让他们感兴趣的东西
  8. Educational Codeforces Round 39 G Almost Increasing Array
  9. MySQL访问行更新慢、用户线程大量堆积竟是因为它
  10. selenium headless报错Message: unknown error: failed to wait for extension background page to load
  11. win10java配置环境变量msi_Windows10+eclipse+hadoop2.7.1环境配置+wordcount-折腾笔记
  12. 虚拟机中的linux系统联网,虚拟机上Linux系统上网设置
  13. Learn Linux The Hard Way — LinuxTOY
  14. javascript -- 事件--事件流-- 冒泡 --捕获
  15. 基于hilbert变换的数字信号_基于Hilbert变换实现数字全息高精度相位重建.pdf
  16. 浙江大学在Github开源了计算机课程,看完在家上个 985
  17. 安卓修改软件安装时间_LaTeX软件安装教程
  18. php asic,ASIC和FPGA的优势与劣势
  19. winform 监控 控制台 输出_海南指挥中心控制台公司-精诚创信
  20. ubuntu安装uTorrent种子下载器

热门文章

  1. 苹果nfc功能怎么开启_iOS 13系统中NFC标签已现身,苹果iPhone如何开启NFC功能?
  2. cocos2dx 内存管理
  3. 怎样提高员工的工作激情?
  4. 老年手机进水了有什么方法?
  5. Unresolved reference: BR
  6. 小度音箱对接之DuerOS开放平台智能家居技能协议分析
  7. Django搭建blog网站(二)
  8. linux下passwd命令修改用户密码
  9. cad调了比例因子没反应_零基础的人怎么学习CAD,学会CAD可以做什么工作?
  10. CAD选中时不能虚线显示中选中状态