从零开始的Java编程之StringBuffer与StringBulider

it2025-04-25  11

一、StringBuffer:

StringBuffer方法:

// 将指定的字符串追加到此字符序列 public StingBuffer append(String s) //反转字符序列 public StringBuffer reverse() //移除此字符串中的字符 public delete(int start, int end) //在offset位置开始插入字符串 public insert(int offset,Object o) //将str替换从start到end位置处的字符 replace(int start, int end, String str)

初始化StringBuffer

StringBuffer str = new StringBuffer(); StringBuffer str1 = new StringBuffer("abc");

关于StringBuffer 与 String

//错误演示 StringBuffer str = "abc"; //错误:赋值类型不匹配 StringBuffer S = (StringBuffer) "abc"; //错误:不存在继承关系,不能强转 //正确方式 String s = "abc"; StringBuffer s1 = new StringBuffer(s); String s2 = s1.toString();

二、StringBuilder:

StringBuilder和StringBuffer用法相同

三、String、Stringbuilder、StringBuffer区别:

共同点: 三者都是字符串类。StringBuffer和StringBuilder都是继承AbsolutelyStringBuilder类,存储字符串都是使用数组进行存储的。 区别: String类存储字符串使用的数组被final修饰,当String对象进行增加修改字符时,都需要new一个字符数组,将原来的值拷贝到心得字符数组中,所以当字符串的值需要经常修改的时候就需要考虑用StringBuffer或StringBuilder来进行处理。StringBuffer和StringBuilder也是使用字符数组来进行存储字符串的,但是没用使用final进行修饰;StringBuffer定义的方法都加入了synchronized修饰,也就是说StringBuffer时线程安全的,而StringBuilder方法没有被修饰,所以StringBuilder是非线程安全的。
最新回复(0)