string是固定不变的,在进行字符串连接的时候实际上是新建一个字符串,返回一个新的字符串对象。连接赋值后, 如果对string赋值多次,就会在内存中保存多个这个对象的副本,这些对象不再被引用,极大地浪费了系统资源 。
而StringBuilder是可变的,不用生成中间对象,拼接字符串比较多,或字符串的长度比较长时有较高的效率。 StringBuilder的内存空间不够也要扩容,如果分配的空间远远大于需要量,也很浪费 所以,初始化StringBuilder的时候最好根据需要设置容量,避免浪费
而StringBuilder是可变的,不用生成中间对象,拼接字符串比较多,或字符串的长度比较长时有较高的效率。 StringBuilder的内存空间不够也要扩容,如果分配的空间远远大于需要量,也很浪费 所以,初始化StringBuilder的时候最好根据需要设置容量,避免浪费