-1
在下面的最小代碼中可以看到,我想在JAVA對象完成時,測試變量中分配的對象將被分配。我可以做些什麼來取消分配這個對象? 我用null
和system.gc
,但它們不能解除分配對象。如何在java中釋放分配的對象?
package chatclient;
/**
*
* @author root
*/
import java.io.IOException;
public class ChatClient {
private void run() throws IOException {
long test[]=new long[10000000];
test[10000]=100;
// Process all messages from server, according to the protocol.
test=null;
System.gc();
}
@Override
protected void finalize() throws Throwable {
super.finalize(); //To change body of generated methods, choose Tools | Templates.
}
/**
* Runs the client as an application with a closeable frame.
*/
public static void main(String[] args) throws Exception {
while(true){
ChatClient client = new ChatClient();
client.run();
}
}
}
你不能,明確。 –
爲了澄清上述評論:[閱讀此問題](http://stackoverflow.com/questions/66540/when-does-system-gc-do-anything)。基本上,'System.gc()'調用僅僅是JVM的一個暗示,也許,如果它覺得它可能會運行垃圾收集。雖然沒有壓力。 – Phylogenesis
請**編輯**問題以說明您的意思是「不工作」。你在看什麼讓你相信對象沒有被「釋放」?由於「免費」是一個C概念,你在這裏意味着什麼? – slim