finalize() 不是通用清理方法。核心原則:垃圾回收只關心記憶體回收,finalize() 僅用於釋放「非 Java 方式配置的記憶體」。
malloc() 配置記憶體finalize() 中透過 native 方法呼叫 free()應實作明確的清理方法(如 close()、dispose()),配合 try-with-resources 確保確定性釋放。finalize() 只是最後防線,不可作為主要機制。
理解 finalize() 的極窄適用範圍,能避免濫用導致的資源管理缺陷。