method Area
java虚拟机只有一个方法区,是被所有java虚拟机线程共享的,主要存贮的内容:类的结构信息包括运行时常量池;
作用:
- 方法区是各个线程共享的内存区域,生命周期随虚拟机启动时创建而创建的,跟java虚拟机同生共死
- 存贮被虚拟机加载的类信息,常量、静态变量、即时编译器编译后的代码等数据
- 虽然java虚拟机规范把方法区描述为堆heap的一个逻辑部分,但是它却有一个别名非堆Non-Heap,目的是与java堆区分开来
- 当方法区无法满足内存分配需求时,将抛出OutofMemoryError异常
- 方法区在jdk 8中就是Metaspace,在jdk6或jdk7中就是Perm Space
- Run-Time Constant Pool在方法区中分配