JVM从入门到精通-方法区

方法区

1.栈、堆、方法区的交互关系

JVM从入门到精通-方法区

1.1 从线程共享与否角度

JVM从入门到精通-方法区

PC:无异常,无GC

虚拟机栈:有异常,无GC

栈、堆和方法区的关系

JVM从入门到精通-方法区

2.方法区的理解

JVM从入门到精通-方法区

堆存费的是new出来的对象;

方法区中存放class文件;

JVM从入门到精通-方法区

2.1 Hotspot方法区演进

JVM从入门到精通-方法区

JDK8元空间使用本地内存;

2.2方法区概述

JVM从入门到精通-方法区

JVM从入门到精通-方法区

元空间不在虚拟机设置的内存中,而使用本地内存。

3.设置方法区大小与OOM

JVM从入门到精通-方法区

JVM从入门到精通-方法区

JVM从入门到精通-方法区

JVM从入门到精通-方法区

 

JVM从入门到精通-方法区

3.1处理OOM

JVM从入门到精通-方法区

 

4.方法区的内部结构

JVM从入门到精通-方法区

方法区存储什么?

JVM从入门到精通-方法区

类型信息:类信息,枚举,接口

常量:运行时常量池;

静态变量

JIT即时编译器编译后的代码缓存:热点代码

 

类型信息

JVM从入门到精通-方法区

域信息

JVM从入门到精通-方法区

方法信息

JVM从入门到精通-方法区

通过字节码文件查看类信息:

JVM从入门到精通-方法区

 

non-final变量

JVM从入门到精通-方法区

JVM从入门到精通-方法区

JVM从入门到精通-方法区

5.方法区使用举例

 

 

 

 

 

 

 

 

 

 

 

 

上一篇:[转帖]Java 8新特性探究(九)跟OOM:Permgen说再见吧


下一篇:spark调优篇-oom 优化(汇总)