jvm内存模型,分区。详细到每个区都放什么。

jvm内存模型,分区。详细到每个区都放什么。
jvm内存模型按照线程分可分为线程独占和线程共享两种.
线程独占 本地方法栈,虚拟机方法栈,程序计数器.
线程共享 堆,方法区
首先本地方法栈:
本地方法栈放的就是本地方法的栈针,这种方法一般是由c语言底层写的.通过JNI调用.
虚拟机方法栈:
它是以栈帧为单位存储的.栈帧中包含

方法索引,输入输出参数,局部变量八大基本类型,操作数栈,动态链接,父帧,子帧.


堆是线程共享,存储的是对象以及数组实例,引用在方法栈中.

方法区
方法区主要存储的是类信息包括方法信息,字段信息,类名,并不是类实例,静态变量常量,运行时常量池等等.

pc寄存器

因为pc寄存器是线程独占的,所以每个线程都有一个寄存器.他不会发生内存溢出的情况因为他不会因为程序的执行而改变寄存器中数据所占的空间.
它存储的是程序虚拟机字节码的地址.

猜你喜欢

转载自blog.csdn.net/weixin_43203363/article/details/109158937
今日推荐