StringBuilder类:字符串缓冲区,提高字符串的效率

本文详细解析了Java中StringBuilder和String的工作原理,对比了两者在内存中的表现和效率差异,探讨了StringBuilder如何通过动态数组实现高效字符串操作,适用于频繁修改字符串场景。

java.long.StringBuilder

StringBuilder原理

  1. String类
    字符串是个常量:在创建之后不能改变;
    字符串底层是一个被final修饰的数组,不能修改,是一个常量。
    private final byte[] value;
    弊端:
    在字符串进行相加时,内存中就会出现多个字符串,占用空间多,效率低下
  2. StringBuilder类
    字符串缓冲区,可以提高字符串中的操作效率(可以看作是一个变化的字符串)
    底层也是一个数组,但没被final修饰,可以改变。
    byte[] value = new byte[16]
    特别地:
    StringBuilder在内存中始终是一个数组,占用空间少,效率高,如果超出了StringBuilber的容量,会自动的扩容

StringBuilder的构造方法
public StringBuilder();//构造一个空的StringBuilder容器
public StringBuilder(String str);//构造一个Stringbuilder容器,并将字符串添加进去

StringBuilder的常用方法

  1. public StringBuilder append(…)//添加任意类型数据的字符串形式,并返回当前对象自身
    参数可以时任意的数据类型
    注意:
    使用append无需接收返回值,因为append方法返回this(返回当前对象)
StringBuilder sbu = new StringBuilder();
sbu.append("abc");//或者sbu.append("abc").append('中');
sbu.append('中');
System.out.println(sbu);//输出:abc中
  1. public String toString()//将当前StringBuilder对象转换为String对象
    String转换为StringBuilder:可以使用StringBuilder的构造方法,StringBuilder(String str)构造一个字符串生成器,并初始化为指定的字符串内容。
    StringBuilder转换为String:可以使用StringBuilder中的toString方法
//String转换为StringBuilder
String str = "hello";
StringBuilder bu = new StringBuilder(Str);
bu.append("world");
System.out.println(bu);//输出:helloworld
//StringBuilder转换为String
String s = bu.toString();
System.out.println(s);//输出:helloworld
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值