JVM 探究(三):垃圾回收算法和垃圾回收器
通过介绍当前的垃圾回收器和垃圾回收算法的对比和不同的优势,来帮助读者选择适合自己的垃圾回收器。主要涉及对象存活的判断、三种垃圾回收算法以及新生代和老年代的几种传统的收集器,最后会介绍一下比较火热的Garbage First(G1)收集器
。
通过介绍当前的垃圾回收器和垃圾回收算法的对比和不同的优势,来帮助读者选择适合自己的垃圾回收器。主要涉及对象存活的判断、三种垃圾回收算法以及新生代和老年代的几种传统的收集器,最后会介绍一下比较火热的Garbage First(G1)收集器
。
本文用于记录在学习 JVM 过程中的实验,在完成《深入理解Java虚拟机》第二版第三章中的实验的基础上,同时保证在JDK1.8
上实验的可重复性,并且针对不同的垃圾收集器做实验扩充。在对不能在JDK8
上重现的实验代码做了修正,在实验结果中分析了JVM的部分特性, 介绍了GC日志的解读等。
我们来聊聊GZIPOutputStream
和 GZIPInputStream
, 如果不关闭流会引起的内存泄露问题,以及GZIPStream
申请和释放堆外内存的流程, Let’s do it!
作为一个 Java 程序员,不了解 Java 内存模型就不能写出能够充分利用内存的代码。本文通过对 Java 内存模型的介绍,让读者能够了解 Java 的内存的分配情况,适合 Java 初学者或者对 JMM 不熟悉的同学。后面的博客会针对每个部分做更加深入的解释。