0
我知道我們不能保證在java中調用垃圾回收器。垃圾回收器沒有運行
public class finalizeDemo {
protected void finalize() {
System.out.println("Wow!! I am called");
}
}
class testFinalizeDemo {
public static void main(String[] a) {
finalizeDemo obnj = new finalizeDemo();
System.gc();
/**
* Forcefully call garbage collector.
*/
}
}
但我看了System.gc()
會強行調用gc。但是我的聲明沒有在當地的日食中打印。
有誰知道爲什麼沒有打印聲明?
如果你明白你不能保證調用GC,你怎麼能相信System.gc()會強制調用gc?你爲什麼不讀它javadoc? http://docs.oracle.com/javase/7/docs/api/java/lang/System.html#gc%28%29。你爲什麼認爲應該有什麼東西?調用gc()時仍然有對象的引用,所以它不能被GCed。 –
@JBNizet感謝參考文檔。我沒有看到不能保證的線路。那是多麼困惑我。如果沒有保證,我不明白這種方法的總目的? –
如果javadoc說方法*強制* JVM執行GC,那麼您將得到一個保證。但是javadoc並沒有這樣說。它表示該方法**建議** JVM執行GC。 –