JVM笔记-19运行时数据区-方法区(方法区垃圾回收、方法区总结、常见面试题)

学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢。

尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机)


垃圾回收

Hotspot:

运行时数据区 垃圾收集 异常
PC寄存器
虚拟机栈
本地方法栈
堆空间
方法区

JVM笔记-19运行时数据区-方法区(方法区垃圾回收、方法区总结、常见面试题)_第1张图片

JVM笔记-19运行时数据区-方法区(方法区垃圾回收、方法区总结、常见面试题)_第2张图片
JVM笔记-19运行时数据区-方法区(方法区垃圾回收、方法区总结、常见面试题)_第3张图片

堆中有实例,就会有指针指向方法区的类型信息。

JVM笔记-19运行时数据区-方法区(方法区垃圾回收、方法区总结、常见面试题)_第4张图片
方法区记录是由哪个类的加载器加载,同时类的加载器也会记录加载过谁。

JVM笔记-19运行时数据区-方法区(方法区垃圾回收、方法区总结、常见面试题)_第5张图片
虚拟机规范没有明确规定方法区是否需要垃圾回收(Hotspot有)

主要回收 废弃的常量和不再使用的类型,但类型有点回收费力不讨好,效果不好。


方法区总结

JVM笔记-19运行时数据区-方法区(方法区垃圾回收、方法区总结、常见面试题)_第6张图片
默认都是Hotspot

线程私有:程序计数器、虚拟机栈、本地方法栈

栈管运行

虚拟机栈存放一个一个栈帧

栈帧:返回值、局部变量表、操作数栈、动态链接(指向运行时常量池当前方法的引用,即知道当前方法引用常量池那个具体的方法)

线程共享:方法区、堆空间

方法区:类型信息、域信息、方法信息、运行时常量池等。

堆管存储

堆空间:新生代:伊甸园区、幸存者0、1区,minor gc (young gc)

老年代:major gc (old gc)

严格说 full gc 针对整个堆区及方法区在内进行gc


常见面试题

JVM笔记-19运行时数据区-方法区(方法区垃圾回收、方法区总结、常见面试题)_第7张图片

问什么两个幸存者区:复制算法,避免碎片化。

JVM笔记-19运行时数据区-方法区(方法区垃圾回收、方法区总结、常见面试题)_第8张图片

你可能感兴趣的:(JVM,jvm,java)