StringBuilder和StringBuffer

StringBuilder 的介绍
由于 String 的不可更改特性,为了方便字符串的修改, Java 中又提供 StringBuilder StringBuffer 类。这两个类大部分功能是相同的,
public static void main(String[] args) {
        StringBuilder stringBuilder=new StringBuilder();
        stringBuilder.append("hello");
        stringBuilder.append("world");
        System.out.println(stringBuilder);
        System.out.println(stringBuilder.reverse());
        System.out.println(stringBuilder.replace(0,3,"hello"));
    }

StringBuff append(String str)
即尾插,在尾部追加,相当于 String += ,可以追加: boolean char char[]
double float int long Object String StringBuff 的变量
public synchronized StringBuffer append(String str) {
        toStringCache = null;
        super.append(str);
        return this;
    }

StringBuffer reverse()
反转字符串
StringBuffer replace(int start, int end, String str)
[start, end) 位置的字符替换为 str
String StringBuilder 最大的区别在于 String 的内容无法修改,而 StringBuilder 的内容可
以修改 。频繁修改字符串的情况考虑使用 StringBuilder
注意: String StringBuilder 类不能直接转换。如果要想互相转换,可以采用如下原则 :
String 变为 StringBuilder: 利用 StringBuilder 的构造方法或 append() 方法
public StringBuilder append(String str) {
        super.append(str);
        return this;
    }

StringBuilder变为String: 调用toString()方法

1String StringBufferStringBuilder的区别
String 的内容不可修改, StringBuffer StringBuilder 的内容可以修改 .在append方法中StringBuffer和StringBuilder的返回值是this,说明是在原有的字符串上修改的
StringBuffer StringBuilder 大部分功能是相似的
StringBuffer 采用同步处理,属于线程安全操作;而 StringBuilder 未采用同步处理,属于线程不安操作

 

public synchronized StringBuffer append(String str) {
        toStringCache = null;
        super.append(str);
        return this;
    }

比较重要的一点,在StringBuffer的append方法中多了synchronized关键字,进入synchronized修饰的代码块,相当于加锁,多线程情况下可以保证线程安全,StringBuilder则没有 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值