jmm内存模型jvm内存模型

tianboblog tianboblog     2022-12-13     655

关键词:

JMM内存模型

  JMM即Java内存模型(Java Memory Model)。可以理解为它是一种抽象出来的硬件存储模型的规范。

  根据JMM的设计,系统存在一个主内存(Main Memory),Java中所有变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(Working Memory),工作内存中保存的是主存中某些变量的拷贝,线程对所有变量的操作都是在工作内存中进行,线程之间无法相互直接访问,变量传递均需要通过主存完成。

 

 技术图片

 

             (图片来源于网络)

 

JVM内存模型

    主要包括:堆,虚拟机栈,本地方法栈,方法区和程序计数器。

技术图片

 

 

JMM内存模型与JVM内存模型的关系

  JMM定义了一种模型规范,而JVM就是基于这中规范实现的一种内存模型划分方式。

  jmm中的主内存、工作内存与jvm中的堆、栈、方法区等并不是同一个层次的内存划分,这两者基本上是没有关系的,如果两者一定要勉强对应起来,那从变量、主内存、工作内存的定义来看,主内存主要对应于Java堆中的对象实例数据部分,而工作内存则对应于虚拟机栈中的部分区域。从更低层次上说,主内存就直接对应于物理硬件的内存,而为了获取更好的运行速度,虚拟机(甚至是硬件系统本身的优化措施)可能会让工作内存优先存储于寄存器和高速缓存中,因为程序运行时主要访问读写的是工作内存。

 

 JVM内存结构

https://www.cnblogs.com/ityouknow/p/5610232.html

 

 



  

java内存模型-jmm

定义Java内存模型(JavaMemoryModel),定义了JVM在计算机内存上的工作方式。JVM是对整个计算机的虚拟模型,所以JMM是隶属于JVM的。如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模型定义了多线程之间共... 查看详情

jvm_12jmm内存模型(代码片段)

学习视频链接:黑马程序员JVM完整教程1.java内存模型(JMM)JMM即JavaMemoryModel,它定义了主存(共享内存)、工作内存(线程私有)抽象概念,底层对应着CPU寄存器、缓存、硬件内存、CPU指令优化等。JMM体... 查看详情

jvm系列之jmm内存模型(代码片段)

java内存划分JMM规定了内存主要划分为主内存和工作内存两种。此处的主内存和工作内存跟JVM内存划分(堆、栈、方法区)是在不同的层次上进行的,如果非要对应起来,主内存对应的是Java堆中的对象实例部分ÿ... 查看详情

java内存结构jvm——java内存模型jmm——java对象模型jom

  JVM内存结构Java代码是要运行在虚拟机上的,而虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。其中有些区域随着虚拟机进程的启动而存在,而有些区域则依赖... 查看详情

全面理解java内存模型

Java内存模型即JavaMemoryModel,简称JMM。JMM定义了Java虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模型定义了... 查看详情

java内存模型(jmm简述)

Java内存模型(JavaMemoryModel)就是一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,保证了Java程序在各种平台下对内存的访问都能保证效果一致的机制及规范。JVM运行程序的实体是线程,而每个线程创建时JVM... 查看详情

jvm基础--jvm内存模型

jvm基础–JVM内存模型文章目录jvm基础--JVM内存模型1.JVM内存模型1.JVM内存模型参考:深入理解JVM-JVM内存模型面试必问之JVM原理深入理解JVM-内存模型(jmm)和GC 查看详情

jvm基础--jvm内存模型

jvm基础–JVM内存模型文章目录jvm基础–JVM内存模型1.JVM内存模型1.JVM内存模型参考:深入理解JVM-JVM内存模型面试必问之JVM原理深入理解JVM-内存模型(jmm)和GC 查看详情

并发jvm-jmm和底层实现原理

...发编程领域的关键问题...1​​​​现代计算机物理上的内存模型...2​​​​Java内存模型(JMM)...2​​​​JVM对Java内存模型的实现...3​​​​Java内存模型带来的问题...3​​​​可见性问题...3​​​​重排序...4​​​​Java内... 查看详情

(超详解)jvm-jmm内存模型(代码片段)

文章目录JVM-JMM内存模型1.原子性1-1问题解析1-2解决方法(1)synchronized(同步关键字)2.可见性2-1退不出的循环2-2解决办法(1)volatile(易变关键字)3.有序性3-1诡异的结果3-2解决方法3-3有序性理解3-4... 查看详情

jvm细谈java内存模型jmm(代码片段)

JMM是Java内存模型,与JVM内存模型是两回事。JMM的主要目标是定义程序中变量的访问规则(Happens-Before)。在底层处理器内存模型的基础之上,定义自己的多线程。JMM规定:要想保证B操作能够看到A操作的结果(无论它们是否在... 查看详情

jmm内存模型

参考技术Ajava内存模型(javamemorymodel简称jmm)是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规定定义通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方... 查看详情

jvm内存模型三

本文章节:1.JMM简介2.堆和栈3.本机内存4.防止内存泄漏 1.JMM简介  i.内存模型概述  Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很多,该语言针对多种异构平台的平台独立... 查看详情

java并发编程-jmm内存模型与volatile关键字

1Java内存模型-JMM内存模型? Java内存模型(JavaMemoryModel简称JMM)是一种抽象的概念,并不真实存在,它描述的是一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)的访问方式。JVM... 查看详情

全面理解java内存模型(代码片段)

Java内存模型即JavaMemoryModel,简称JMM。JMM定义了Java虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存... 查看详情

重新认识java内存模型(jmm)(代码片段)

通过学习《深入理解Java虚拟机》有关Java内存模型的介绍,整理的学习笔记,供你参考。文章目录Java内存模型定义主内存和工作内存CPU普及内存间交互操作对于volatile型变量的特殊规则原子性、可见性与有序性先行发生&#x... 查看详情

java-内存模型(jsr-133)(代码片段)

Java内存模型(JavaMemoryModel,JMM)看上去和Java内存结构(JVM运行时内存结构)差不多,但这两者并不是一回事。JMM并不像JVM内存结构一样是真实存在的,它只是一个抽象的概念。Java的线程间通过共享内存(Java堆和方法区)进行... 查看详情

jvm内存模型

Java的内存模型JMM(JavaMemoryModel)JMM主要是为了规定了线程和内存之间的一些关系。根据JMM的设计,系统存在一个主内存(MainMemory),Java中所有实例变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(Wor... 查看详情