可变字符串StringBuffer和StringBuilder

本文探讨了Java中的String类为何是不可变对象,并介绍了如何使用StringBuilder和StringBuffer来实现字符串的修改。通过示例代码展示了这两个类在字符串拼接上的应用。StringBuffer的append方法具有线程安全性,但由于同步锁的存在,其效率可能低于StringBuilder。文章提醒读者在考虑线程安全和性能之间做出选择。
摘要由CSDN通过智能技术生成

咱么接着上一期来说

既然String类字符串是不可变对象,我们想修改它的值就无计可施了吗,当然不是,我们有强大的StringBuffer和SringBuilder

StringBuffer和StringBuilder两个在创建对象时必须使用new关键字

 

在拼接的时候返回当前this对象

  public static void main(String[] args) {
        StringBuilder  stringBuilder=new StringBuilder("123");
        stringBuilder.append(123);
        System.out.println(stringBuilder);


    }

 

public static void main(String[] args) {
        StringBuffer stringBuffer=new StringBuffer("wyb");
        stringBuffer.append(" I love you");
        System.out.println(stringBuffer);
    }

 现在看看StringBuffer的源码

StringBuffer的append 方法被synchronized修饰了,所以是线程安全的

但不能说StringBuffer比StringBuilder更加高效,因为频繁的加锁和解锁是需要耗费很多资源的

今天的分享就到这里,我们下期再见!!! 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值