![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
Zhujinsi_3
positive!
展开
-
新生代为什么不使用“标记-整理算法”?
首先要明确的是“新生代使用的是复制算法”!从三个角度考虑这个问题:移动比复制开销更大:假设这个考虑的角度是对的,但是老年代中存活的对象要比新生代中要多得多,既然多的存活对象都可以使用这种开销较大的移动,那么少的对象也可以,所以排除这个角度。内存碎片问题:复制算法和标记-整理算法都是将存活的对象整理好了,所以也排除这个角度。清理内存空间:排除了以上两个角度,那么就只剩这一个考虑问题的角度了...原创 2019-07-13 21:57:41 · 5015 阅读 · 8 评论 -
JVM堆区新生代为什么有两个Survivor?
JVM内存模型中,Heap区被分为新生代和老年代两个区域,新生代又分为Eden+Survivor1+Survivor2.新生代收集算法主要使用复制算法,老年代收集算法只要使用标记-整理算法。堆内存划分:为什么不是0个 Survivor 空间?这个问题等价于:为什么需要 Survivor 空间。我们看看如果没有 Survivor 空间的话,垃圾收集将会怎样进行:一遍新生代 gc 过后,不...原创 2019-07-13 22:24:27 · 516 阅读 · 0 评论