九. 垃圾回收
-
垃圾回收针对的内存
-
堆内存,针对的是堆内存中创建的对象占用的内存。
-
堆内存中的垃圾内存可以被回收。
-
垃圾内存:垃圾对象占用的内存就是垃圾内存。
-
-
垃圾对象
-
对于开发者来说,不再使用的对象就是垃圾对象。
-
对于 jvm 来说,如何判断一个对象是否是垃圾对象呢?
-
如果没有任何引用指向一个对象,那么该对象就称为垃圾对象。
-
-
-
如何垃圾回收
-
jvm 中有一块功能专门负责垃圾回收。(垃圾回收器Garbage Collector,简称 GC)。
-
System.gc(); 通过这行代码去执行 jvm的垃圾回收器。
-
注意:GC 被执行的优先级特别低。即使调用了该方法,也不能保证 GC 立即执行。
-
-
如何判断对象被回收了
-
finalize():
-
Object 类中我们接触到的第三个方法。默认实现是空实现。
-
【该方法不要主动的去调用,被动调用的。被jvm 被动调用。】
-
当一个对象被 GC 回收的时候,该对象的 finalize 方法会被调用。
-
建议:finalize() 方法不建议重写。也不建议使用。
-
-
特殊对象回收
-
特殊对象:流对象、网络连接对象、数据库连接对象.. 必须【经过特殊的处理】才能正常回收。
-
不能 直接 赋值 为 null,GC 不可以这样。
-
-
总结:
-
回收堆内存中对象占用的内存。
-
回收的是垃圾对象占用的内存。
-
没有任何引用指向的对象是垃圾对象。
-
通过给对象的引用赋值为 null,让对象成为垃圾对象。
-
通过System.gc() 去执行JVM垃圾回收的功能。
-
-

浙公网安备 33010602011771号