JVM大概知识点
JVM内存模型中分为栈,程序计数器,堆,方法区,本地方法区。
1.栈:其实栈就是线程,比如启动main线程,此时线程中有会生成栈帧,每个栈帧是对应一个方法的。
栈帧:局部变量表、操作数栈、动态链接、方法出口。
局部变量表用来存放变量的地址。
操作数栈用来进行数据的操作,如定义常量1和2,按先后顺序入栈,然后出栈进行计算,得到的值存入局部变量表,执行完所有操作后此时操作数栈为空。
操作数栈中的每个操作的对应的下一个操作的标志是通过程序计数器来存储的,也就是说通过程序计数器告诉虚拟机执行操作时的流程以及顺序。
动态链接在上一篇博客中,文章最后有地址,用来找局部变量表中的对象的。
方法出口用来标志下一个方法。
2.堆:用来存储对象
3.程序计数器,用来存储下一条指令的地址。
4.方法区,也叫元空间,存储常量静态变量和类元信息。类元信息在上一篇博客有讲解。
博客地址
https://blog.youkuaiyun.com/qq_17490417/article/details/102776733