java虚拟机-区域划分

2017-12-06  本文已影响0人  justlinzhihe
IMG_0133.JPG

Method Area(Non-Heap)(方法区) ——线程共享

存储加载的类信息,常量,静态变量,即时编译后的代码数据等。
其中运行时常量池存放编译器生成的各种字面量和符号引用。运行期也可能将数据放入,比如说String的intern()方法

Heap(堆) ——线程共享

jvm中区域最大的一块,在虚拟机启动的时候创建,大小通过-Xmx -Xms 控制

Program Counter Register(程序计数器) ——非线程共享

线程切换的时候记录程序执行的位置地址,唯一一个没有内存溢出的区域。

VM Stack(虚拟机栈,也有翻译成JAVA 方法栈的)——非线程共享

描述java方法执行的内存模型,每个方法执行的时候都会建立一个栈帧,用于存储局部变量表,操作数栈,动态链接,方法出口等信息。溢出有两种,一种是StackOverflowError,栈深度溢出,另一种是OutOfMemoryError,内存溢出。

Native Method Stack ( 本地方法栈 )——非线程共享

同上

上一篇 下一篇

猜你喜欢

热点阅读