对于jvm内存模型的理解

       在面试的时候,经常会被别人问到JVM内存模型,在B站也看过很多大牛的讲解,最后总结出来了一个JVM的内存模型。

       在xxx.class文件被执行时候,会被调用javac编译,存入到JVM虚拟机当中,而JVM虚拟机中又包含本地方法栈、线程栈、堆、元空间(以前是方法区,后来好像是jdk1.8之后被改成了元空间永久存储)和程序计数器。

       本地方法栈:即为加了native关键词的变量存放的地方,这里一般都是用其他语言编写的局部变量的值

       堆:存放对象的地方

       元空间:存放堆中对象的.class文件

       程序计数器:记录了字节码文件中的下一次准备执行的行号或者正在执行的行号

       线程栈:main方法的栈帧(16进制的地址值)和其他方法的栈帧

              其他方法栈帧中又有:局部变量栈、操作数线、动态链接、方法入口

                      局部变量栈:即是存放局部变量的地方

                      操作数线:对数据进行加减乘除操作的地方

                      动态链接:存放在元空间中.class类源信息中方法的地址值

                      方法入口:存放下一个需要跳转到哪一行代码的位置信息

 

    只是大概讲解一下JVM内存模型长什么样,他到底要怎么运行一整套流程因为我忘记看到那个视频的地址链接了,就不提供了,接下来提供有一张我自己看过视频后对于JVM内存模型的理解图。

 

 

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值