Java中常用的String类
String类的底层是一个不可变的char数组,一旦初始化之后便不可再更改。但是我们在实际开发中会经常发现可以重新指定字符串类型的值,这是在堆内存中重新创建了一个对象。
如 String a = "hello"; a = a+"world";
StringBuffer和StringBuilder类
在实际开发中我们经常会对字符串进行修改操作,而String修改会频繁地创建新的对象,影响效率,还会产生大量的内存垃圾。为了解决这个问题Java中引入了StringBuffer和StringBuilder类。
StringBuffer和StringBuilder类都是可修改的字符串类,适用于涉及字符串大量修改的场景。两者最大的区别在于StringBuffer是线程安全的,因此StringBuilder效率会更高,单线程环境下推荐使用StringBuilder。
三者的区别:
总结
- String字符序列不可变,StringBuilder和StringBuffer字符序列可变。
- 少量字符串时使用String
- 单线程操作大量数据使用StringBuilder
- 多线程操作大量数据使用StringBuffer
参考博文:https://blog.csdn.net/weixin_41101173/article/details/79677982,感谢整理和分享!