Java 中 String、StringBuffer 和 StringBuilder 的区别

一、String类——字符串常量

在 Java 中,字符串属于对象,Java 提供了 String 类来创建和操作字符串。

需要注意的是,String 的值是不可变的,所以每次对 String 的操作都会生成新的 String 对象,导致大量内存空间被浪费。

下图为对字符串进行操作时内存的变化:
在这里插入图片描述
由此可见,当字符串操作过多时,需要在内存创建很多空间,造成很大的浪费。而 StringBuffer 类和 StringBuilder 类可以对字符串进行动态处理。

二、StringBuffer 类和StringBuilder 类——字符串变量

StringBuffer 类和 StringBuilder 类的对象能够被多次的修改而不产生新的未使用对象,方便字符串的修改。

两个类的方法相似,用法也相同。不同之处在于,StringBuffer 类的方法都用 synchronized 关键字修饰,是线程安全的,而 StringBuilder 的方法不是线程安全的。所以 StringBuilder 速度更快,效率更高,多数情况下都使用 StringBuilder 类。而当程序要求线程安全时,就要使用 StringBuffer 类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值