美文网首页
垃圾收集器和内存分配策略

垃圾收集器和内存分配策略

作者: 极客123 | 来源:发表于2018-10-28 15:06 被阅读0次
    GC需完成的三件事:
    • 那些内存需要回收
    • 什么时候回收
    • 如何回收

    为什么要了解GC和内存分配?

    当需要排查内存泄漏和内存溢出等问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,开发人员就需要对这些自动化的东西进行必要的监控和调节。


    判断对象是否已经死了:

    • 引用计数法: 简单,但难以处理对象之间相互引用的关系
    • 可达性分析算法:通过可达性分析来判断对象是否存活,通过枚举根节点,从根节点开始,向下搜索,搜索走过的路径称为引用链,对没有和引用链相连的对象判定为可回收的对象

    GC根节点对象分类:

    虚拟机栈中的对象(栈帧的本地变量表)
    方法区中类静态属性引用的对象
    方法区中的常量引用对象
    本地方法栈中JNI引用的对象
    

    引用分类:jdk1.2之后的故事

    强引用: Abc abc = new Abc();
    软引用:https://www.cnblogs.com/renhui/p/6069437.html
    在使用非强引用时,构建对象后需把new出的对象制空,手动gc,之后用虚软弱等引用来进行操作,优化性能。

    为了解决内存操作不灵活的问题,我们可以通过了解Java的引用方式来解决这个问题


    相关文章

      网友评论

          本文标题:垃圾收集器和内存分配策略

          本文链接:https://www.haomeiwen.com/subject/diwptqtx.html