1. 前言
在上一篇文章中,介绍了JVM中垃圾回收的原理和算法。介绍了通过引用计数和对象可达性分析的算法来筛选出已经没有使用的对象,然后介绍了垃圾收集器中使用的三种收集算法:标记-清除、标记-整理、标记-复制算法。
介绍完原理,在这篇文章中,我们将介绍当前JVM中已经实现的垃圾收集器,以及与收集器主题相关的一些内容。
首先,我们将在上一篇文章中提到分代收集机制的基础上,介绍下现代商业JVM中普遍采用的分代回收策略。然后,按照内存分代划分的维度介绍下当前JVM中实现的收集器。最后,学习分析不同收集器的GC日志,然后结合日志分析,学习下不同情况下的对象分配策略。
2. 分代收集策略
我们知道,当对象被创建的时候,就会给对象分配一块内存空间,而一旦对象的生命周期结束,我们就需要回收这块内存空间。但是,在一个应用程序中,不同的对象存在的时间,或者说每个对象的生命周期都是不同的。
有些对象生命周期很短,比如Web应用程序中的request对象,它的生命周期和请求是对应的,当请求完成以后,该request对象就结束了它的职责,需要被收集器回收。有些对象的生命周期很长,比如一些全局的对象,可能会伴随整个应用程序的生命周期而存在。
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26
学习是年轻人改变自己的最好方式