java的System.gc()的理解
生活随笔
收集整理的這篇文章主要介紹了
java的System.gc()的理解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
什么是System.gc()
實例1
實例2
什么是System.gc()
1.在默認情況下,通過System.gc()或者Runtime.getRuntime().gc()的調用,會顯式觸發Full?GC,同時對老年代和新生代進行回收,嘗試釋放被丟棄對象占用的內存。
2.然而,System.gc()調用附帶一個免責聲明,無法保證對垃圾收集器的調用。
3.JVM實現者可以通過System.gc()調用來決定JVM的GC行為。而一般情況下,垃圾回收應該是自動進行的,無須手動觸發,否則就太過于麻煩了。在一些特殊情況下,如我們正在編寫一個性能基準,我們可以在運行之間調用System.gc()。
實例1
System.gc()表示提醒jvm的垃圾回收器執行gc,但是不確定是否馬上執行gc。
System.gc()與Runtime.getRuntime().gc()是一樣的。
System.runFinalization()一定會強制調用失去引用的對象的finalize方法。
實例2
結果:
localvarGC1沒有回收。
localvarGC2回收了。
localvarGC3沒有回收。
localvarGC4回收了。
localvarGC5回收了。
總結
以上是生活随笔為你收集整理的java的System.gc()的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jvm执行引擎全解,java解释器即时编
- 下一篇: java-内存溢出与内存泄漏