zoukankan      html  css  js  c++  java
  • JVM笔记(4)--对象已死?和方法区回收

    第三章 垃圾回收器和内存分配策略

                第一节 判断对象是否死亡和回收方法区

        一 判断对象是否死亡:

          1)在Java主流的虚拟机中是通过 可达性分析算法

          可达性分析算法:是指通过CG Roots的节点集通过引用关系开始搜索对象,搜索到的对象的路径称之为“可达链”,若搜索到的对象还在这条链上则该对象还可以使用 ,反之对象不能使用。

          2)而对于引用计数算法是通常用在python,游戏的脚本语言中微软的com(component object model)技术中。

                引用计数算法:在Java堆单独开辟一个存储引用计数器的内存空间,当对象被引用该计数器值就加一,当引用失效时,该计数器的值就减一,当计数器的值为0时,该对象就会消亡。

        二 回收方法区主要包括 废弃的常量 和 不在使用的类型:

          1)常量回收要求:例如 “Java”字符串, 没有字符串对象引用常量池中如 “java”这个常量,在虚拟机中没有任何地方引用这个字面量

          2)一个类型是否属于“不在被使用的类”:1 所有实例都被回收。2加载该类的类加载器被卸载了。3该类的对象没有被任何地方引用,无法通过反射访问到该类的方法。

        总结:为什么要了解垃圾收集和内存分配?

                           主要时对于我们排查各种内存溢出,内存泄漏问题。

    未完待续!!!

  • 相关阅读:
    phpstorm实现分屏展示代码
    Yii2 JWT
    JSON Web Token 入门教程
    Linux常用命令: zip、unzip 压缩和解压缩命令
    yii2表单提交CSRF验证
    解决jquery click事件执行两次
    《Inside C#》笔记(十二) 委托与事件
    MVC与单元测试实践之健身网站(七)-日程与打卡
    《Inside C#》笔记(十一) 运算符重载
    MVC与单元测试实践之健身网站(七)-添加计划
  • 原文地址:https://www.cnblogs.com/linyu1/p/13831135.html
Copyright © 2011-2022 走看看