学生党,自学过程遇到的一个问题,求个大佬看看 Java里面StringBuilder 调用setLength() 假设只截取了一部分 那么剩下的字符串是被GC了还是怎么了?

qq_45814820 2024-01-23 16:54:05
假设
StringBuilder sBuilder = new StringBuilder("hello");
sBuilder.setLength(2);
System.out.println(sBuilder);

那么剩下的llo是被GC了还是?

setLength()底层源码是

count = newLength;

是不是可以理解为底层新建了一个char[] value数组长度为2 + 16 count = 2;

 

 

...全文
261 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

确实发错了,但是原理和Delphi的SetLength差不多,如果新串长度不超过已分配的空间,只修改内部长度计数,否则重新分配空间,复制,释放之前的空间。

daigua1987 01-24
  • 打赏
  • 举报
回复

发错了 这里是Delphi社区

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧