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

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

作者: 极客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