- Method Area(Non-Heap)(方法区) ——线程共享
- Heap(堆) ——线程共享
- Program Counter Register(程序计数器) ——非线程共享
- VM Stack(虚拟机栈,也有翻译成JAVA 方法栈的)——非线程共享
- Native Method Stack ( 本地方法栈 )——非线程共享
Method Area(Non-Heap)(方法区) ——线程共享
存储加载的类信息,常量,静态变量,即时编译后的代码数据等。
其中运行时常量池存放编译器生成的各种字面量和符号引用。运行期也可能将数据放入,比如说String的intern()方法
Heap(堆) ——线程共享
jvm中区域最大的一块,在虚拟机启动的时候创建,大小通过-Xmx -Xms 控制
Program Counter Register(程序计数器) ——非线程共享
线程切换的时候记录程序执行的位置地址,唯一一个没有内存溢出的区域。
VM Stack(虚拟机栈,也有翻译成JAVA 方法栈的)——非线程共享
描述java方法执行的内存模型,每个方法执行的时候都会建立一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法出口等信息。溢出有两种,一种是StackOverflowError,栈深度溢出,另一种是OutOfMemoryError,内存溢出。
Native Method Stack ( 本地方法栈 )——非线程共享
同上
网友评论