StringBuffer

  • 每一个字符串的常量都属于一个String类的匿名对象,并且不可更改
  • String有俩个常量池:静态常量池,运行时常量池
  • String类对象实例化建议使用直接赋值的形式完成,这样可以直接将独享保存在对象池中以方便下次重用

弊端,虽然String类很好用,但是会有一个很大的弊端,内容在频繁的修改会造成很大的性能损失,原因是,String类对象进行修改时实际上原始的字符串没有发生变化,而改变的只是String类对象的引用关系.也就是说,字符串一旦定义就不可以改变

在开发中,如果需要频繁的修改一个字符串,那么就应该用StringBuffer或StringBuilder代替

StringBuffer不像String类那样有俩种对象实例化的方式

jdk1.0开始就有了

StringBuffer与String类不能直接互相转换

有以下几种方式

String转StringBuffer

调用Stringbuffer构造方法,传入String,或者调用StringBuffer实例对象的append方法传入STring

StringBuffer转String

调用Stringbuffer实例对象的toString方法,或调用String的构造方法传入StringBuffer

常用方法

public StringBuffer append(数据类型变量)

public StringBuffer reverse()

public StringBuffer insert (int offset ,数据类型 变量) 在制定位置追加指定内容

public StringBuffer delete(int start ,int end)删除指定索引范围的内容

StringBuilder

从jdk1.5开始,java增加了一个新的字符串操作类,StringBuilder

这俩各类几乎完全相同,打开源码才会发现区别,在StringBuffer类中定义的方法全部使用Synchronized进行同步定语,而StringBuilder中没有,所以StringBuffer类的方法都是异步方法

Last modification:April 21, 2022
如果觉得我的文章对你有用,请随意赞赏