String、StringBuffer和StringBuilder

本文探讨了Java中String、StringBuffer和StringBuilder的区别,包括创建方式、线程安全、运行速度及清空方法。重点在于何时选择哪种类型以优化性能,尤其是在频繁修改字符串场景中。
摘要由CSDN通过智能技术生成

String、StringBuffer和StringBuilder

String

java中字符串String有两种创建方式。一种储存在公共池中,一种储存在堆上。

String str="储存在公共池中的创建方式";
String str2=new String("储存在堆上的创建方式");

String是静态的,一旦创建就不可变。当改变str的值时,jvm会在内存中创建一个新的String存储str+str2的值,并将其赋值给str。因此变量str只是指向了一个新的对象,效率极低

String str="储存在公共池中的创建方式";
String str2=new String("储存在堆上的创建方式");
String str=str+str2;

String相关方法

StringBuffer和StringBuilder

当对字符串进行频繁修改的时候,需要使用 StringBuffer 和 StringBuilder 类。和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

StringBufferStringBuilder
多线程线程安全线程不安全
运行速度慢(但还是比String快)
清空StringBuffer和StringBuilder

值得一提的是StringBuffer和StringBuilder并没有clear()方法来清空元素。因此要采用其他方式来清空所有元素。

  1. 使用delete方法清空
StringBuffer str=new StringBuffer("test");
str.delete(0,str.length());
  1. 使用setlengeh
StringBuffer str=new StringBuffer("test");
str.setLength(0);

StringBuffer和StringBuilder相关方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值