JVM(Java Virtual Machine)垃圾回收

当下动态分配,内存回收技术已经相当成熟,为什么还要了解垃圾回收机制?

当排查内存溢出,内存泄漏,当系统达到更高的并发瓶颈时候,垃圾回收机制,就需要开发人员实施必要监控和调节。

程序计数器,本地方法栈,虚拟机栈3个区域是线程私有的,随着我们线程的消亡而消亡,所以这些区域就不需要考虑过多的垃圾回收问题。

堆和方法区有着不同的区别:一个接口有多个实现类,所需需要的内存不一定,一个方法所执行不同条件分支所需要的内存也不一样,只有在运行期才能知道会创建多少个对象,创建那些对象,这部分的内存分配和回收是动态的。

如何判断对象已死

  1. 引用计数法 在对象中添加一个计数器,每当有一个地方引用它的时候,计数器就进行加一,当引用失效就进行减一,计数器为0时对象就可在被使用。

    缺点:当对象之间存在相互引用的情况下,无法判定是垃圾。无法回收

  2. 可达性分析法

猜你喜欢

转载自juejin.im/post/7031091926765928456