JVM系列一:JVM内存模型
今天起开始总结JVM。自己也看了好多JVM相关的知识,在此做个总结。
打算分为五个部分来讲:JVM内存模型、JVM类加载机制、JVM垃圾回收机制、JVM启动参数设置及优化、JVM其他相关。
今天首先来看JVM内存模型。
————————————————————————————————————————————————————————————
JVM是java虚拟机,它将字节码(.class文件)加载到内存里解释执行。
JVM运行时所需的数据放在运行时数据区,分为5个部分:
1.堆:存储JVM运行过程中生成的对象
2.方法区:存储类的结构信息,静态变量信息,包含常量池(常量池存储常量,字符串)
3.程序计数器:始终指向JVM执行的下一条指令地址
4.栈:JVM是基于栈执行的虚拟机,每启动一个线程,都会分配一块栈空间,JVM的执行就是将栈帧入栈和出栈的操作
5.本地方法栈:执行非java方法,本地方法的栈空间
其中,堆和方法区是所有线程共享的;程序计数器、栈和本地方法栈是每个线程所私有的。