String、StringBuilder、StringBuffer区别

本文详细解析了Java中String类的特性,包括其不可变性、字符串共享机制以及与StringBuilder和StringBuffer的区别。探讨了String类如何实现高效内存使用及线程安全问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最终类。代表字符串的类,所有的字符串都是String的对象。

字符串是一个常量,定义好之后不可改变。

因为字符串是一个常量,所以它是被共享的 --- 只要值相同,用的都是同一个字符串

字符串本质上是一个不可变的字符数组

String str=“abc”->str=“def”的=内存变换

String str=“abc”和String str=new String("abc")的区别

注意:在String中提供了一系列操作而不改变原字符串的方法,大部分都是产生了一个新的字符串,所以效率较低

String和StringBuilder和StringBuffer的区别:

String是一个不可变类,每次进行操作时会产生新的对象。

StringBuider的连接操作速度是最高的。

StringBuffer的连接操作速度介于俩者之间。原因是线程安全的。

(每个方法都用synchronized修饰) 

public synchronized StringBuffer append(CharSequence s) {

        toStringCache = null;

        super.append(s);

        return this;

    }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值