gpt4 book ai didi

java - 了解 Java 内存管理

转载 作者:太空狗 更新时间:2023-10-29 22:59:08 25 4
gpt4 key购买 nike

Java 程序员知道 JVM 运行垃圾收集器,而 System.gc() 只是建议 JVM 运行垃圾收集器。不一定是用了System.gc()就立即执行GC。

如果对Java的垃圾收集器理解有误,请指正。

除了依赖 Java 的垃圾收集器之外,是否还有其他方法进行内存管理?
如果您打算通过某种有助于管理内存的编程实践来回答这个问题,请这样做.

最佳答案

关于 Java 内存管理要记住的最重要的事情是“取消”您的引用。

只有未被引用的对象才会被垃圾回收。

例如,下面代码中的对象永远不会被收集,你的内存将被填满而无所事事。

List objs = new ArrayList();
for (int i = 0; i < Integer.MAX_VALUE; i++) objs.add(new Object());

但是如果你不引用那些对象......你可以尽可能多地循环而不会出现内存问题。

List objs = new ArrayList();
for (int i = 0; i < Integer.MAX_VALUE; i++) new Object();

因此无论您做什么,请确保删除对不再使用的对象的引用(将引用设置为 null 或清除集合)。

垃圾收集器何时运行最好由 JVM 决定。好吧,除非你的程序即将开始做一些使用大量内存并且对速度至关重要的事情,所以你可以建议 JVM 在进入之前运行 GC,因为你可能会收集垃圾并继续使用额外的内存。否则,我个人认为没有理由运行 System.gc()

希望这对您有所帮助。

关于java - 了解 Java 内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13855013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com