采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
看到这里时对工作内存在JVM运行时内存中的体现有点疑惑
如下图,我们知道JVM中的运行是内存模型是这样的,工作内存应该是在线程私有内存中
但线程私有内存中只有 PC、VM Stack 和 Native Stack 其中比较有可能对应工作内存的只有VM Stack了 但VM Stack的某一个栈帧结构如下图,其中好像也没有对应工作内存的部分
所以比较疑惑,求解答
首先点赞哈,同学很认真啦。其实这里的内存模型,是一个比较抽象的概念,工作内存也被称作本地内存,不一定真的存在,在实际的运作中可能指CPU缓存、各类缓冲、寄存器等等,简单来说可以用Cpu 的缓存和内存来理解,前者就可以认为是工作内存,后者就是主内存。
实际上你就发现这个与Java虚拟机内存的分法是不在一个维度的,不管是堆还是栈,内存里面的数据读出来到CPU中间会经历一些环节,写回来也是如此。
感谢大佬解答,我重新梳理了一遍,是不是这样的:JVM运行时内存模型中隐藏了工作内存的概念,主存就是JVM运行时内存,但是在CPU执行的过程中,不管是读取堆还是读取栈,都会尽量减少直接读主存的次数,所以使用了各类高速缓存,这类高速缓存就是线程的工作内存,它没有包括进JVM运行时内存模型中
这样理解看上去没有什么问题~
非常感谢!
登录后可查看更多问答,登录/注册
改变视野和思维 深度与广度兼备的 Android 进阶面试指导课程
1.1k 1
1.2k 16
892 10
1.2k 10