我正在为 Java 中的背包问题实现一个动态规划算法。我声明数组,然后将其大小初始化为[对象数][背包容量]。
当我的对象数量或容量太大时,我会收到内存错误,因为堆空间不足。我的问题是:如果我在执行过程中从我的双数组中删除行,Java 会在我删除时释放内存吗?还是 Java 会为我最初创建的数组的大小保留该内存空间?如果是后者,有没有办法在 Java 中手动释放内存?
感谢您的帮助!
最佳答案
简短的回答是"is"——如果您使用这样的数组:
private void foo () {
int[][] bar = new int[10][10];
bar[1] = null;
//at this point, the array that was in bar[1] is eligible for garbage collection
//unless someone else has a reference to it
}
关于java - 在 Java 中删除数组的一部分以释放堆上的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2747111/