JVM垃圾收集器(Java Garbage Collection)。本教程均在JDK1.8+HotSpot为例来讲解的.
先来看看Java7的:

编辑
再来看看Jva8的

编辑
从上图中我们可以看出,java8之后换成了元空间。那么怎么证明,堆区是有新生代、永久代、元空间三部分组成的呢?OOM这个错误我们都熟悉,那么怎么手动制造出一个OOM呢?如果16G的物理内存,JVM堆内存能够分到多少G的内存空间呢?我们带着这些疑问来一起学习吧
在Java8中,永久带已经被移除了,被一个称为元空间的区域所取代。元空间的本质和永久带类似。
元空间与永久带之间最大的区别在于:
永久带使用的是JVM的堆内存空间,但是java8以后的元空间并不是虚拟机中的空间,而是使用了本机的物理内存空间的。
因此,默认情况下,元空间大小仅受到本地内存大小的限制。类的元数据放入native memory,字