方法区:
Java虚拟机规范中明确说明:尽管所有的方法区在逻辑上是属于 堆的一部分,但是一些简单的实现,可能不会选择去进行垃圾 收集或者进行压缩。所以我们将方法区叫Non-Heap(非堆),目的就是要和堆分开
- 方法区的生命周期与JVM进程一致
- 存储已被虚拟机加载的类型信息(接口,类,枚举,注解都被存储在方法区),方法信息,域信息,运行时常量,静态变量(不同版本不一样),即时编译器(JIT)编译后的代码
- 运行时常量池属于Method Area中的一部分
- 方法区从逻辑上来理解其本身也属于Heap的一部分。Method Area又称之为Non-Heap
主要目的时为了区分理解(JDK8之前的Method Area实现叫PermSpace,JDK8及之后的Method