首页 > 编程知识 正文

字符串拼接是什么意思,如何将字符串拼接在一起

时间:2023-05-05 12:45:38 阅读:261392 作者:304

文章目录 字符串拼接的办法+号拼接concat方法StringBuffer (线程安全)StringBuilder(线程不安全)一点建议

字符串拼接的办法 +号拼接 String a="hello";String b="world";String c=a+" "+b;System.out.println(c) //hello world

实际原理:
对文件进行反编译 javap -c name.class 得到下面

可以发现+号的底层实现原理其实类似于下面

StringBuilder sb = new StringBuilder();sb.append(a);sb.append(b);System.out.println(sb.toString()); concat方法 String a="hello";a.concat(" world");String b=a.concat(" world");System.out.println(a); //helloSystem.out.println(b); //hello world

可以发现concat并不是改变原字符串,对于String的改变都是创建了一个新的String对象。
实现原理:

1.可以发现是创建一个新的字符数组2.将两个字符串复制到字符数组当中去。3.通过new String 的方式将字符数组转为String返回 StringBuffer (线程安全) StringBuilder sb = new StringBuilder();sb.append(a);sb.append(b);System.out.println(sb.toString()); StringBuilder(线程不安全) StringBuffer sb = new StringBuffer();sb.append(a);sb.append(b);System.out.println(sb.toString()); 一点建议 循环体内的字符串拼接,使用StringBuilder的append方法。因为+号拼接,每一次都会new出一个StringBuilder,造成资源浪费。效率降低在并发编程下,将StringBuilder换成StringBuffer

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。