5,557
社区成员
![](https://csdnimg.cn/release/cmsfe/public/img/topic.427195d5.png)
![](https://csdnimg.cn/release/cmsfe/public/img/me.40a70ab0.png)
![](https://csdnimg.cn/release/cmsfe/public/img/task.87b52881.png)
![](https://csdnimg.cn/release/cmsfe/public/img/share-circle.3e0b7822.png)
假设
StringBuilder sBuilder = new StringBuilder("hello"); sBuilder.setLength(2); System.out.println(sBuilder);
那么剩下的llo是被GC了还是?
setLength()底层源码是
count = newLength;
是不是可以理解为底层新建了一个char[] value数组长度为2 + 16 count = 2;
确实发错了,但是原理和Delphi的SetLength差不多,如果新串长度不超过已分配的空间,只修改内部长度计数,否则重新分配空间,复制,释放之前的空间。
发错了 这里是Delphi社区