English 中文(简体)
如何立即从内存中删除刚刚从数组列表中删除的值
原标题:How to immediately remove from memory a value that has just been removed from arraylist

我正在创建一个 Java 程序, 将一些数据添加到一个阵列列表中 。

一些处理在循环中, 我正在在循环中的列表中添加一个新的节点, 使用该节点执行操作, 然后在循环迭代结束前删除该节点, 使用 trarrist. remove () 。 我还在运行 System. gc (); 就在循环迭代结束之前 。

然而当我拿下一个记忆倾弃处时, 我发现阵列列表仍然持有我在不同循环迭代中使用的所有值... 我如何从记忆中抹去所有这些值? 我想在循环迭代结束前做这个, 这样阵列列表就不会变小?

最佳回答

Java 有垃圾收集器是有原因的, 原因是程序员不必考虑从内存中移除对象。 您唯一能做的( 我不建议)是强制启动垃圾收集器 < code> System. gc () 方法。 但记住要做两次, 因为第一次它只会通过引用 < code > 终局化 () 方法来准备要删除的对象 。

问题回答

如果使用“活性”物体的内存倾弃,则该物体将被删除。

去除物体的成本相对较高,因此通常最好在爪哇进行,以便只在需要时(当联合核查机制这样做时)才能移除物体。

您的意思是将矩阵列表中的一部分内存解开来, 而不是将以前存储在矩阵列表中的天体解开来吗? 如果是这样的话, 您可以拨打 ArrayList. trimToSize () - 来这样做, 它将将矩阵中的所有值复制成一个新的( 内部) 阵列, 并允许收集旧的( 内部) 阵列。 (因为要复制阵列中的所有值, 它自然只能在有重大区别时才能完成 。)





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签