LearnJava(三)String、StringBuffer 与 StringBuilder

简介:   我们知道,String对象是不可变的,而Java中String类提供了“+”进行字符串拼接操作,从JDK1.5开始,字符串的拼接操作是通过StringBuffer类来完成的。

  我们知道,String对象是不可变的,而Java中String类提供了“+”进行字符串拼接操作,从JDK1.5开始,字符串的拼接操作是通过StringBuffer类来完成的。

String a = "str";
String b = "ing";
String c = a + b;

上述代码的实际实现过程是:

String c = new StringBuffer(a).append(b).toString();

  也就是说,在这个过程中实际创建了一个StringBuffer对象和一个String对象。因此,当对字符串进行修改的时候,使用 StringBuffer 和 StringBuilder 类,系统开销比较小。
  与 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

区别
  • String 不可变,而 StringBuffer 和 StringBuilder 是可变的。
  • StringBuffer 是线程安全的,内部使用 synchronized进行同步,而 StringBuilder 不是线程安全的。

根据这些主要区别:

  1. 进行字符串拼接操作时,使用StingBuffer 和 StringBuilder 可以节省系统开销。
  2. 在要求线程安全的情况下,应该使用 StringBuffer。
相关文章
|
8天前
|
安全 Java API
JavaSE——常用API进阶一(3/3)-StringBuilder(构造器、拼接内容、反转操作、其他操作),StringBuffer,StringJoiner
JavaSE——常用API进阶一(3/3)-StringBuilder(构造器、拼接内容、反转操作、其他操作),StringBuffer,StringJoiner
10 1
|
11天前
|
安全 Java 测试技术
滚雪球学Java(50):理解Java中String、StringBuilder和StringBuffer的区别与选择
【6月更文挑战第4天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
12 0
滚雪球学Java(50):理解Java中String、StringBuilder和StringBuffer的区别与选择
|
24天前
|
存储 安全 Java
【JAVA学习之路 | 提高篇】StringBuffer与StringBuilder
【JAVA学习之路 | 提高篇】StringBuffer与StringBuilder
|
24天前
|
存储 安全 Java
javaSE-String,StringBuffer和StringBuilder
javaSE-String,StringBuffer和StringBuilder
22 0
|
29天前
|
存储 Java
Java基础复习(DayThree):字符串基础与StringBuffer、StringBuilder源码研究
Java基础复习(DayThree):字符串基础与StringBuffer、StringBuilder源码研究
Java基础复习(DayThree):字符串基础与StringBuffer、StringBuilder源码研究
|
1月前
|
安全 Java 编译器
Java中String、StringBuilder和StringBuffer的区别
Java中String、StringBuilder和StringBuffer的区别
15 1
|
1月前
|
安全
String、StringBuuffer、StringBuilder三者的区别
String、StringBuuffer、StringBuilder三者的区别
|
1月前
|
缓存 安全 Java
【Java基础】String、StringBuffer和StringBuilder三种字符串对比
【Java基础】String、StringBuffer和StringBuilder三种字符串对比
10 0
|
1月前
StringBuilder和StringBuffer区别是什么?
StringBuilder和StringBuffer区别是什么?
|
1月前
|
Java API 索引
Java基础&API(2) String、StringBuilder详解
Java基础&API(2) String、StringBuilder详解