java.long.StringBuilder
StringBuilder原理
- String类
字符串是个常量:在创建之后不能改变;
字符串底层是一个被final修饰的数组,不能修改,是一个常量。
private final byte[] value;
弊端:
在字符串进行相加时,内存中就会出现多个字符串,占用空间多,效率低下 - StringBuilder类
字符串缓冲区,可以提高字符串中的操作效率(可以看作是一个变化的字符串)
底层也是一个数组,但没被final修饰,可以改变。
byte[] value = new byte[16]
特别地:
StringBuilder在内存中始终是一个数组,占用空间少,效率高,如果超出了StringBuilber的容量,会自动的扩容
StringBuilder的构造方法
public StringBuilder();//构造一个空的StringBuilder容器
public StringBuilder(String str);//构造一个Stringbuilder容器,并将字符串添加进去
StringBuilder的常用方法
- public StringBuilder append(…)//添加任意类型数据的字符串形式,并返回当前对象自身
参数可以时任意的数据类型
注意:
使用append无需接收返回值,因为append方法返回this(返回当前对象)
StringBuilder sbu = new StringBuilder();
sbu.append("abc");//或者sbu.append("abc").append('中');
sbu.append('中');
System.out.println(sbu);//输出:abc中
- 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
本文详细解析了Java中StringBuilder和String的工作原理,对比了两者在内存中的表现和效率差异,探讨了StringBuilder如何通过动态数组实现高效字符串操作,适用于频繁修改字符串场景。
713

被折叠的 条评论
为什么被折叠?



