一文了解JVM-(2、垃圾收集器和内存分配策略)
1、前言
本文主要讲的是jvm中的垃圾收集器和内存分配测量,对于java运行时区域来讲,程序计数器,虚拟机栈,本地方法区3个区域的随着线程而生,不需要考虑垃圾回收的问题,但是java堆中和方法区不一样,需要我们认真的去考虑。
2、对象存活死亡判断
在进行垃圾回收之前,我们必须要清楚的知道哪些对象是存活着,哪些对象已经死亡。
2.1、引用计数算法
给对象中添加一个引用计数器,每当有一个地方引用它时候,计数器的数量加一,当引用失效的时候,计数器的值就减去1,任何时刻计数器为0的对象就是不可能再被使用的。
问题:引用计数算法无法解决两个对象互相引用问题。
2.2、可达性分析算法
在主流的程序语言中,大部分都是通过可达性分析来判断对象是否存活的,