Java内存结构、Java内存模型、java对象模型

Java内存结构

Java代码运行在JVM上,JVM将所管理的内存划分为不同的数据区域

上图是Java虚拟机规范,不同的虚拟机实现会各有不同,但是一般会遵守规则。

上图划分的是逻辑区域,并不是绝对意义上的物理区域,因为某些版本的jdk中方法区其实是在堆中实现的。

Java内存模型

Java堆和方法区的区域是多个线程共享的数据区域;也就是说,多个线程可能操作保存在堆或方法区中的同一个数据。(Java线程间通过共享内存进行通信)

Java多线程之间通过共享内存进行通信;由于采用共享内存进行通信,在通信过程中会存在一系列如原子性,可见性,顺序性等问题,而jvm是JMM(Java内存模型)是围绕着多线程通信以及与其相关的一系列特性而建立的模型。volatile、synchronized

Java对象模型

Java是面向对象语言,Java对象在jvm中存储也是有一定结构的。java对象自身的存储模型称之为Java对象模型。

每一个Java类,在被JVM加载的时候,JVM会给这个类创建一个instanceKlass,保存在方法区,用来在JVM层表示该Java类。当我们在Java代码中,使用new创建一个对象的时候,JVM会创建一个instanceOopDesc对象,这个对象中包含了对象头以及实例数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值