在Java内存中,分配给字符串缓冲区的内存未被清除
分配给字符串缓冲区的内存没有被清除,即使我们这样做了在Java内存中,分配给字符串缓冲区的内存未被清除,java,jvm,Java,Jvm,分配给字符串缓冲区的内存没有被清除,即使我们这样做了 stringbuffer.delete(0,Stringbuffer.length()); stringbuffer = null; System.gc(); 删除分配给字符串缓冲区的全部内存的任何建议。您无法控制Java内存管理。甚至通过调用System.gc()。通过调用System.gc(),您只能建议JVM收集垃圾,但不能强制释放内存 Java将仅根据其算法收集垃圾内存 System.gc()javadoc说 调用gc方法意味着Ja
stringbuffer.delete(0,Stringbuffer.length());
stringbuffer = null;
System.gc();
删除分配给字符串缓冲区的全部内存的任何建议。您无法控制Java内存管理。甚至通过调用
System.gc()
。通过调用System.gc()
,您只能建议JVM收集垃圾,但不能强制释放内存
Java将仅根据其算法收集垃圾内存
System.gc()
javadoc说
调用gc方法意味着Java虚拟机需要
努力回收未使用的对象,以使内存
它们目前可用于快速重用。当控件返回时
从方法调用来看,Java虚拟机已经尽了最大的努力
从所有丢弃的对象中回收空间
来源:-当gc运行时,如果没有对它的引用,它将清除内存。你怎么知道内存没有被清除?可能是从什么中删除的副本?它应该在你的内存芯片上打个洞吗?垃圾收集器将使RAM可用于其他对象,而不是对其进行修改。只要没有人将内存用于其他目的,它就可以保留其旧内容。这也适用于手动内存释放的其他编程语言。StringBuilder.delete()不会释放任何内存。不在任何地方使用stringBuilder可用于清理。顺便说一句,如果可以,请不要使用StringBuffer,因为它在十多年前被StringBuilder取代。“分配给字符串缓冲区的内存没有被清除”你怎么知道?