String/StringBuffer/StringBuilder区别

String是不可改变的对象。
每次改变其实都是创建了一个新的对象,然后将指针指向新的String对象,所以经常改变内容的字符串尽量不要用String,
因为每次都会生成新的对象,对系统性能有影响。
String s ="A"+"B"+"C";
速度非常快,因为JVM认识这个语句。在编译期间就把他看成来了 String s ="ABC"
而 String s1 ="A"     String s2 ="B"     String s3 ="C"
    String s =s1+s2+s3 则没有了速度优势。
StringBuffer是(线程安全的)可以改变的对象,一般来讲速度稍快于String对象。
.append()在结尾加上字符串
 StringBuffer Sb = new StringBuilder(“This is only a”).append(“ simple”).append(“ test”);
.insert()在指定角标加字符串
例如,如果 z 引用一个当前内容是“start”的字符串缓冲区对象,则此方法调用 z.append("le") 会使字符串缓冲区包含“startle”,而 z.insert(4, "le") 将更改字符串缓冲区,使之包含“starlet”
StringBuilder是(线程不安全的)可改变的对象,提供与StringBuffer兼容的API,单线程推荐使用,速度比StringBuffer快。

转载于:https://www.cnblogs.com/xiejiusi/p/7743625.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值