JVM内存管理&GC

Posted 南田玉彦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM内存管理&GC相关的知识,希望对你有一定的参考价值。

一.JVM内存划分

|--------------------|-------------PC寄存器-------|

|----方法区 ---------|--------------java 虚拟机栈--|         

|----堆区----------- |-------------本地方法栈------|

|----共享区域------- |--------------线程独有-------|

其中左边为共享内存空间,右边为线程独有的线程级别的内存

各个区存储什么?

1.方法区:类的描述,常量等

2.堆:java对象,数组

3.pc寄存器:保存当前线程的执行地址

4.本地方法栈:方法等的局部变量

5.本地方法栈:系统本地方法

二、GC

1.知识准备:标记清除算法和复制清除算法

2.堆区划分

 {(年轻代:Eden区,s0,s1),(老年代:old),(持久代:perm)}

年轻代使用复制清除算法(serial ,parnew ,parallel)

年老代(CMS,serial old,parallel old)

 

为嘛分s0和s1:个人认为是使用的是复制清除算法

 

以上是关于JVM内存管理&GC的主要内容,如果未能解决你的问题,请参考以下文章

JVM内存管理及GC机制

JVM内存管理与GC机制

jvm内存分区

学习JVM--垃圾回收

Java GC的工作原理详解

JVM内存管理概述