JVM及GC

1.JVM概述

在这里插入图片描述

在这里插入图片描述

1.Class Loader类加载器在这里插入图片描述

2.本地库接口

和C打交道 Java Native Interface JNI
例如
在这里插入图片描述
java的native方法 交给操作系统去干,操作系统去找本地方法库,所以native方法不用实现
在这里插入图片描述

3.方法区

在这里插入图片描述

4.PC Register 程序计数器

在这里插入图片描述

5.Native Method Stack 本地方法栈

在这里插入图片描述

6.虚拟机栈

在这里插入图片描述
在这里插入图片描述
每⼀个栈帧就是⼀个⽅法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.堆

new的对象在堆内存的新⽣区的伊甸区
在这里插入图片描述

1.新生区

在这里插入图片描述
new⼀个⼤对象,测试jvm的最⼤内存

在这里插入图片描述

2.养老区

在这里插入图片描述

3.永久区

永久区例如Object实例对象存储在永久区
java7叫永久区 java8叫元空间
在这里插入图片描述

2.JVM Demo总结及调优

在这里插入图片描述
toString()源码分析:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.jdk1.7配置及堆结构

在这里插入图片描述

2.jdk1.8配置及堆结构

在这里插入图片描述

3.jvm调优 -Xmn -Xms -Xmx

代码测试jvm的最⼤分配内存,和jvm使⽤内存
在这里插入图片描述
在这里插入图片描述
调整jvm内存⼤⼩
在这里插入图片描述
输出结果:
在这里插入图片描述

3.jvm 垃圾回收机制

gc:demo
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.minor GC 及复制算法

minorgc只针对新⽣代进⾏清理,主要采⽤复制算法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.full gc/major gc,对⽼年代进⾏回收,主要采⽤标记清除算法和标记整理算法

1.标记清除算法:

在这里插入图片描述
标记清除算法的缺点:
在这里插入图片描述

2.标记整理算法:

在这里插入图片描述
在这里插入图片描述

3.总结

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Persistence___/article/details/121390676