其他
垃圾回收策略和算法,看这篇就够了
The following article is from 程序员大帝 Author Craig无忌
来源 | 程序员大帝(ID:kingcoding)
前言
回收,旧手机,旧冰箱,旧空调,旧洗衣机,电瓶车摩托车,自行车,报纸,塑料......
让程序员专注于程序本身,不用关心内存回收这些恼人的问题,真正让程序员的生产力得到了释放,程序员不用感知到它的存在。
JVM 内存区域 回收策略 垃圾回收经典算法 垃圾回收器对比
JVM 内存区域
我们首先要知道垃圾回收主要回收的是哪些数据,这些数据主要在哪一块区域,所以我们一起来看下 JVM 的内存区域。
JDK8以前
JDK8之后
垃圾回收策略
凡事都讲解个策略,那么 Java 怎么判断堆中的对象实例或数据是不是垃圾呢,应不应该把它回收掉呢?
引用计数法
可达性分析
垃圾回收经典算法
知道了应该对哪些对象进行回收,那接下来就要看如何回收了,经典的垃圾回收算法有三种。
标记 - 清除算法
标记 - 整理算法
复制算法
分代算法
垃圾回收器对比
前面的内容更多的是方法论,真正执行垃圾回收的要靠各个垃圾回收器。
Serial收集器
Serial-Old收集器
ParNew收集器
Parallel Scavenge收集器
Parallel Old收集器
CMS收集器(划重点!!)
G1收集器(划重点!!)
更多推荐阅读