释放由字节数组分配的内存的最佳方法是什么(Java中的新字节[size])?
答案 0 :(得分:50)
停止引用它。
答案 1 :(得分:14)
在Java中创建新的byte []时,可以执行类似
的操作byte[] myArray = new byte[54];
要释放它,你应该
myArray = null;
如果其他东西引用了你的字节数组,比如
yourArray = myArray;
你还需要将其他引用设置为null,如此
yourArray = null;
在Java中,垃圾收集是自动的。如果JVM可以检测到整个程序无法再访问一块内存,那么JVM将为您释放内存。
答案 2 :(得分:6)
删除对该字节数组的所有引用。垃圾收集器将负责其余的工作。
答案 3 :(得分:2)
将对它的所有引用设置为null将使其成为Java的自动垃圾回收的候选者。你不能确定这需要多长时间才会发生。如果您确实需要立即显式回收内存,则可以拨打System.gc();
另外,为了清除您可能不需要明确地将引用设置为null。如果引用超出范围,它们将自动为空,例如一旦在完成执行时声明它的方法,局部变量引用将被清零。因此,局部变量通常在应用程序运行时期间一直隐式释放。