垃圾回收機制,簡稱 GC
- Java 語言不需要程序員直接控制內存回收,由 JVM 在后台自動回收不再使用的內存
- 提高編程效率
- 保護程序的完整性
- JVM 需要跟蹤程序中有用的對象,確定哪些是無用的,影響性能
特點
- 回收 JVM 堆內存里的對象空間,不負責回收棧內存數據
- 無法處理一些操作系統資源的釋放,如數據庫連接、輸入流輸出流、Socket 連接
- 垃圾回收發生具有不可預知性,程序無法精確控制垃圾回收機制執行
- 可以將對象的引用變量設置為 null,垃圾回收機制可以在下次執行時回收該對象。
- JVM 有多種垃圾回收 實現算法,表現各異
- 垃圾回收機制回收任何對象之前,會先調用對象的 finalize() 方法
- 可以通過 System.gc() 或 Runtime.getRuntime().gc() 通知系統進行垃圾回收,會有一些效果,但系統是否進行垃圾回收依然不確定
- 不要主動調用對象的 finalize() 方法,應該交給垃圾回收機制調用
