【Java虚拟机】垃圾收集器与内存分配1

2019-02-27  本文已影响0人  AC威威
  1. Java虚拟机运行时数据区:方法区、堆、虚拟机栈、本地方法栈、程序计数器.

方法区:永久代【回收,废弃常量+无用的类】

堆:新生代+老年代
新生代【98%的对象都是“朝生夕死”,采用复制算法】
老年代【对象存活率较高,采用标记清理或标记整理算法】

新生代:Eden区+Survivor区
比例为8:1(采用复制算法,只浪费了10%的内存空间)

5.举个例子
尝试分配3个2MB大小和1个4MB大小的对象
设置Java堆大小为20MB,其中10MB分配给新生代,剩下的10MB分配给老年代
设置新生代Eden区与Survivor区比例为8:1

最后的结果是:Eden区占4MB,Survivor区空闲,老年代被占用6MB
过程:

上一篇 下一篇

猜你喜欢

热点阅读