垃圾回收机制,简称 GC
Java 语言不需要程序员直接控制内存回收,由 JVM 在后台自动回收不再使用的内存;提高编程效率;保护程序的完整性;;JVM 需要跟踪程序中有用的对象,确定哪些是无用的,影响性能
特点:
- 回收 JVM 堆内存里的对象空间,不负责回收栈内存数据
- 无法处理一些操作系统资源的释放,如数据库连接、输入流输出流、Socket 连接
- 垃圾回收发生具有不可预知性,程序无法精确控制垃圾回收机制执行
- 可以将对象的引用变量设置为 null,垃圾回收机制可以在下次执行时回收该对象。
- JVM 有多种垃圾回收 实现算法,表现各异
- 垃圾回收机制回收任何对象之前,会先调用对象的 finalize() 方法
- 可以通过 System.gc() 或 Runtime.getRuntime().gc() 通知系统进行垃圾回收,会有一些效果,但系统是否进行垃圾回收依然不确定
- 不要主动调用对象的 finalize() 方法,应该交给垃圾回收机制调用