StringBuilder的原理

StringBuilder类

字符串拼接问题

由于String类的对象内容不可改变,所以每当进行字符串拼接的时候,总是会在内存中创建一个新的对象。例如:

class Test{
public static void main(String[] args){
String s = "Hello";
s+="World";
System.out.println(s);
}
}

在API中对String类有这样的描述:字符串是常量,他们的值在创建后不能被更改
根据这句话分析我们的代码,其实总共产生了三个字符串,即"Hello"、"World"、和"HelloWorld",引用变量:首先只想Hello对象,最终只想拼接出来的新字符串对象,即HelloWorld。

StringBuilder类:
字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化的字符串)
底层也是一个数组,但是没有被final修斯和,可以改变长度
byte[] value = new byte[16];
image

StromgBuilder在内存中始终是一个数组,占用空间少,效率高如果超出了StringBuilder的容量,会自动扩容

posted @ 2022-07-04 16:15  我滴妈老弟  阅读(74)  评论(0)    收藏  举报