StringBuilder类的学习

StringBilder类

基本介绍

1、一个可变的字符序列,此类提供一个于StringBuffer兼容的API,但不保证同步,该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候,如果可能,建议优先采用该类,因为在大多数实现中,他比StringBuffer要快

2、在StringBuffer上的主要操作时append和insert方法,可重载这些方法以接受任意类型的数据

package StringBuilder_;

public class StringBuilder01 {
    public static void main(String[] args) {
        /**
         * 1、StringBuilder继承AbstractStringBuilfer类
         * 2、实现了Serializable,说明StringBuilder对象是可以串行化(对象可以在网络传输,可以保存到文件中)
         * 3、StringBuilder时final类,不能被继承
         * 4、StringBuilder对象字符序列任然是存放在其父类AbstractStringBuilder的char[] value.
         *  因此也是存放在堆中
         * 5、StringBuilder的方法,没有互斥的处理,即没有synchronized关键字,因此在单线程的情况下使用
         */
        StringBuilder stringBuilder = new StringBuilder();
    }
}

StringBuilder应用

String StringBuffer StringBuilder的比较

1、StringBuilder和StringBuffer非常类似,均代表可变的字符序列,而且方法一样

2、String:不可变的字符序列,效率低,但是复用率高

3、StringBuffer:可变字符序列,效率较高(增删),线程安全

4、StringBuilder:可变字符序列,效率最高,线程不安全

5、String使用注意说明:

String s="a";//创建了一个字符串
s+="b";
实际上是原来的a字符串对象已经丢弃了,现在又产生了一个字符串s+"b"(也就是ab),如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率,如果这样的操作放在循环中,会寄到影响程序的性能===>结论:如果我们对String做大量修改,不要使用String

String StringBuffer StringBuilder效率

StringBuilder(单线程)> StringBuffer >String

1、如果字符串存在大量的修改操作,一般使用StringBuffer和StringBuilder

2、如果字符串存在大量的修改操作,并在单线程的情况下,使用StringBuilder

3、如果字符串存在大量的操作,并在多线程的情况下,使用StringBuffer

4、如果字符串很少修改,被多个对象引用,使用String,比如配置信息等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值