jvm内存模型学习心得
昨天面试了两家,备受打击,问的多的就是jvm内存,然额真的是一头雾水。工作中用到的真是少之又少,面试还得问道,
今天恶补了下,在此作以下总结:
jvm分为5部分
1.程序计数器
jvm支持多线程运行,每个线程都有自己的程序计数器,如果执行的是jvm的方法,那保存的是当前指令的地址,如果执行是native方法,则为空
2.java栈
栈里面是每个栈帧,每个栈帧对应一个方法。栈帧里包括局部变量表(基本类型和引用地址),操作数栈,常量池的引用,方法的返回地址
3.本地方法栈
存储的为native方法
4堆
对象和数组
5.方法区
类的信息,静态变量,常量,编译器编译后的代码
另外永久代和元空间概念,了解