java - 在 Java 中,对象数组是如何被垃圾回收的?

标签 java arrays object garbage-collection

当对象数组不再被引用时,该数组中的对象是否也会被垃圾回收? (假设没有变量引用元素)

在此页面中,http://java.sys-con.com/node/37613 它说 - “最大的危险是将对象放入集合中却忘记将其删除。该对象使用的内存将永远不会被回收。”

如果您确保使引用无效,为什么该内存将无人认领?

谢谢

最佳答案

When an array of objects is not referenced anymore, does the objects in that array are garbage collected too? (assuming no variables are referencing the elements)

是的。

"The biggest danger is placing an object into a collection and forgetting to remove it. The memory used by that object will never be reclaimed."

此时您持有对集合的引用。例如,如果您有一个 Map,您在其中放置了一个键值,然后忘记删除它,那么它将永远保留在那里。想想 http session ,如果你在 ServerContext 中使用某些东西,或者在请求开始时使用 session id 作为键,但未能在请求处理结束时将其删除。

关于java - 在 Java 中,对象数组是如何被垃圾回收的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9627836/

相关文章:

java - TargetDataLine.getFramePosition()vs read()

java - 如何使用Java获取div的坐标和尺寸

java - RxJava2 组合多个可观察量以使它们返回单个结果

javascript - "Join"两个数组

arrays - MATLAB:删除元胞数组中具有一定长度的元素

java - 为什么 Java 1.8 中的函数式接口(interface)(Function、Supplier、Consumer 等)不会抛出泛型异常?

python - python 线程问题 (dht22)

javascript - jQuery/javascript 事件 - 原型(prototype)事件处理程序

javascript - 使用变量作为名称向 JavaScript 对象添加属性?

javascript - Lodash:_.has 检查返回 false 的键