九. 垃圾回收

九. 垃圾回收

  • 垃圾回收针对的内存

    • 堆内存,针对的是堆内存中创建的对象占用的内存。

    • 堆内存中的垃圾内存可以被回收。

    • 垃圾内存:垃圾对象占用的内存就是垃圾内存。

  • 垃圾对象

    • 对于开发者来说,不再使用的对象就是垃圾对象。

    • 对于 jvm 来说,如何判断一个对象是否是垃圾对象呢?

      • 如果没有任何引用指向一个对象,那么该对象就称为垃圾对象。

  • 如何垃圾回收

    • jvm 中有一块功能专门负责垃圾回收。(垃圾回收器Garbage Collector,简称 GC)。

    • System.gc(); 通过这行代码去执行 jvm的垃圾回收器。

    • 注意:GC 被执行的优先级特别低。即使调用了该方法,也不能保证 GC 立即执行。

  • 如何判断对象被回收了

  • finalize():

    • Object 类中我们接触到的第三个方法。默认实现是空实现。

    • 【该方法不要主动的去调用,被动调用的。被jvm 被动调用。】

    • 当一个对象被 GC 回收的时候,该对象的 finalize 方法会被调用。

    • 建议:finalize() 方法不建议重写。也不建议使用。

  • 特殊对象回收

    • 特殊对象:流对象、网络连接对象、数据库连接对象.. 必须【经过特殊的处理】才能正常回收。

    • 不能 直接 赋值 为 null,GC 不可以这样。

  • 总结:

    • 回收堆内存中对象占用的内存。

    • 回收的是垃圾对象占用的内存。

    • 没有任何引用指向的对象是垃圾对象。

    • 通过给对象的引用赋值为 null,让对象成为垃圾对象。

    • 通过System.gc() 去执行JVM垃圾回收的功能。

    • finalize()方法是一个对象被回收之前调用的最后一个方法,临终遗言。

posted @   ITboy搬砖人  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示