Hello Java Developers:
我正在寻找一个内置类来存储一系列字符。它需要符合以下标准:
我找到了几个满足其中一些要求的选项,但不是全部。例如:
我是否误解了其中一个类的文档,或者是否有人知道满足所有4个标准的数据结构?
编辑: 根据标准3,我不是指GC的空闲内存。
我正处于需要重复分配和取消分配其中几个缓冲区的情况。在我的用例中,这些缓冲区最终会相当大(~100 KB),并且我会使用这样的缓冲区。
我知道我可以创建一个缓冲区,使用它然后在我完成时将其GC-ed。但是,我发现当您不断分配和取消分配大部分JVM(和物理机器)内存时,JVM垃圾收集器运行速度非常慢。当我开始对内存进行微管理(就像在C ++中可以做到的那样)时,通过分配缓冲区一次然后重新使用它(因此不那么频繁地触发垃圾收集),我发现了速度提升。
答案 0 :(得分:2)
StringBuilder / StringBuffer应该满足3,因为delete(...)
应该做你需要的。或者为什么不简单地创建一个新实例并让旧实例进行GC?
答案 1 :(得分:2)
StringBuffer能够删除它的内容
buffer.delete(0, buffer.length());
答案 2 :(得分:0)
我发现的解决方案: StringBuilder有.setLength(0),我可以用来让缓冲区开始重写内容。
(专用的.reset()方法本来不错。)