您的位置 首页 java

Java字符串拼接用“+”?StringBuilder,StringBuffer了解一下吧

Java 开发中难免需要进行字符的拼接操作,初级选手可能就直接使用“+”运算符进行String拼接。但是这样会有性能隐患,如果操作次数比较频繁会发现速度很慢。这其中的原因是什么呢?解决的办法又是什么呢?今天小编就帮助大家整理了相关的知识点。

1.为什么使用+运算符进行 字符串 拼接的速度会比较慢?

String为 字符串常量 ,即String对象一旦创建之后该对象是不可更改的。 用+运算符拼接String字符时,会新建一个String对象,然后把拼接后的值赋给这个对象,之前的String对象就被回收了。 因为每次拼接操作都要新建-回收String对象,对性能的影响还是很大的。

2.StringBuilder和 StringBuffer :替代“+”运算符进行字符串拼接的方式

上面说了“+”运算符拼接字符串慢的原因,为什么StringBuilder和StringBuffer比“+”运算符高效呢?因为 StringBuilder StringBuffer 的对象是变量,对变量进行操作就是直接对该对象进行更改,而不进行创建和回收的操作,所以速度要比String快很多。

使用示例:

那StringBuilder和StringBuffer有什么区别呢?

线程 安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的。如果一个StringBuffer对象在字符串缓冲区被多个线程使用时,StringBuffer中很多方法可以带有 synchronized 关键字,所以可以保证线程是安全的,但StringBuilder的方法则没有该关键字,所以不能保证线程安全,有可能会出现一些错误的操作。所以如果要进行的操作是 多线程 的,那么就要使用StringBuffer,但是在单线程的情况下,还是建议使用速度比较快的StringBuilder。

关于StringBuilder和StringBuffer小编就和大家介绍到这里,如果你觉得本篇文章对你有帮助,欢迎帮忙转发。如果你有什么观点,欢迎你在下方留言。

文章来源:智云一二三科技

文章标题:Java字符串拼接用“+”?StringBuilder,StringBuffer了解一下吧

文章地址:https://www.zhihuclub.com/185885.shtml

关于作者: 智云科技

热门文章

网站地图