StringBuffer类和StringBuilder类以及StringJoiner类

本文详细介绍了Java中的StringBuffer、StringBuilder和StringJoiner类,包括它们的构造方法、主要功能(如添加、删除、替换、反转和截取)以及三者之间的区别。特别指出,StringBuffer线程安全但效率较低,StringBuilder线程不安全但效率较高,而StringJoiner用于构建字符串,提供指定分隔符和前后缀的功能。
摘要由CSDN通过智能技术生成

目            录

一.StringBuffer类​

​1.StringBuffer

​2.StringBuffer的构造方法

​3.StringBuffer的取容量和长度的方法:

​4.StringBuffer添加功能方法:

​5. StringBuffer删除功能的方法

 ​6.StringBuffer替换和反转功能的方法

​7.StringBuffer截取功能的方法

二.StringBuilder类

三.StringJoiner类​

四.String类,StringBuffer类和StringBuilder类的区别​


一.StringBuffer类

1.StringBuffer

 我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间.StringBuffer就可以解决这个问题.

StringBuffer是一个字符容器,是线程安全的可变字符序列.

2.StringBuffer的构造方法

  • public StringBuffer():                             无参构造方法
  • public StringBuffer(int capacity):         指定容量的字符串缓冲区对象
  • public StringBuffer(String str):             指定字符串内容的字符串缓冲区对象
public class Test {
    public static void main(String[] args) {

        // StringBuffer:长度可变的字符容器。

       /* StringBuffer()  构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。*/
        StringBuffer sb = new StringBuffer();

        //你可以指定容器容量,例如指定100
        StringBuffer stringBuffer = new StringBuffer(100);

        //指定字符串内容的字符串缓冲区对象
        StringBuffer sb2 = new StringBuffer("abc");
       
    }
}

3.StringBuffer的取容量和长度的方法:

  • public int capacity():            返回当前容量。    理论值
  • public int length():                  返回长度(字符数)。 实际值
public class Test {
    public static void main(String[] args) {
      
        StringBuffer sb = new StringBuffer();
        StringBuffer stringBuffer = new StringBuffer(100);
        StringBuffer sb2 = new StringBuffer("abc");
        
            //获取容量的方法
            int capacity1 = sb.capacity();
            System.out.println(capacity1);             //16
            int capacity2 = stringBuffer.capacity();
            System.out.println(capacity2);             //100
            int capacity3 = sb2.capacity();
            System.out.println(capacity3);        
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
StringBufferStringBuilderStringJoinerJava中用于字符串拼接的工具,它们在使用方式和特点上有一些区别。 1. StringBuffer: - 线程安全:StringBuffer是线程安全的,可以在多线程环境下使用。 - 可变性:StringBuffer是可变的,可以通过调用其方法来修改字符串内容。 - 同步访问:StringBuffer的方法大多数是使用synchronized关键字进行同步的,因此在多线程环境下可以保证操作的原子性。 - 性能较低:由于需要考虑线程安全,所以在性能方面稍弱于StringBuilder。 2. StringBuilder: - 线程不安全:StringBuilder不是线程安全的,不适合在多线程环境下使用。 - 可变性:StringBuilder是可变的,可以通过调用其方法来修改字符串内容。 - 非同步访问:StringBuilder的方法没有使用synchronized关键字进行同步,因此在单线程环境下具有更高的性能。 - 性能较高:由于不需要考虑线程安全,所以在性能方面较优于StringBuffer。 3. StringJoiner: - 字符串拼接:StringJoiner提供了一种方便的方式来拼接多个字符串,可以指定分隔符、前缀和后缀。 - 不可变性:StringJoiner本身是不可变的,每次拼接操作都会生成一个新的StringJoiner对象。 - 简洁性:StringJoiner在处理多个字符串拼接时,代码更加简洁明了。 总结来说,如果在单线程环境下进行字符串拼接,且不需要考虑线程安全问题,可以使用StringBuilder来获得更好的性能。如果在多线程环境下进行字符串拼接,或者需要考虑线程安全问题,可以使用StringBuffer。而StringJoiner则适用于需要拼接多个字符串,并且希望代码简洁明了的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

naoguaziteng

谢谢友友的打赏!一起努力吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值