JVM的内存模型

Java虚拟机管理的内存分为五大区域,程序计数器、虚拟机栈、本地方法栈、堆以及方法区。程序计数器、虚拟机栈和本地方法栈都是线程私有的,即每个线程都有自己的程序计数器、虚拟机栈和本地方法栈;堆和方法区是线程共享的,即所有线程共享堆和方法区。
JVM内存模型:

1) 是为java方法提供运行空间的
2) 方法一旦被调用就会在栈中创建对应的栈帧,而方法的整个执行过程就是方法对应的栈帧从入栈到出栈的过程。换言之,就是方法被调用进栈(压栈 入栈),方法执行结束出栈(弹栈)。
3) 栈是先进后出后进先出(先被调用的方法最后结束,后被调用的方法最先结束)
4) 栈中的变量都是属于方法的,所以都是局部变量,且局部变量必须初始化值。
5) 栈生命周期与其所属线程的生命周期一致,可以认为栈具有自动销毁机制。

1) 是为实体对象来开辟空间的,换言之就是实体对象的空间都在堆中开辟。凡是被new出来的都是对象。
2) 堆中的变量是对象变量,因为是属于对象的,且是随着对象的创建而产生随着对象的销毁而销毁。
3) 堆中的变量(对象变量)都有默认值:
整数:0 浮点型:0.0 布尔型:false char型:’ ’ 对象:null
4) 堆没有自动销毁机制,它里面的垃圾由垃圾回收器负责收集(通过收集算法判断哪个对象属于垃圾然后再清理)
5) 堆中的空间都有一个16进制的首地址作为地址进行区分。

方法区

方法区中存放已经被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。
常量是存放在方法区中的运行时常量池中的。

JVM内存模型是什么?相关推荐

  1. java面试-深入理解JVM(一)——JVM内存模型

    JVM内存模型 Java虚拟机(Java Virtual Machine=JVM)的内存空间分为五个部分,分别是:  1. 程序计数器  2. Java虚拟机栈  3. 本地方法栈  4. 堆  5. ...

  2. Java JVM内存模型

    简述JVM内存模型 线程私有的运行时数据区: 程序计数器.Java 虚拟机栈.本地方法栈. 线程共享的运行时数据区:Java 堆.方法区. 简述程序计数器 程序计数器表示当前线程所执行的字节码的行号指 ...

  3. Java基础:由JVM内存模型详解线程安全

    1.前言 最近在研究JVM内存模型和Java基础知识.主要讲的是线程共享变量与线程私有变量以及如何写出线程安全的代码.这里列出一条规则,"类中的成员变量,也叫实例变量,也叫全局变量,它是非线 ...

  4. JVM 内存模型:方法区(Method Area)

    1. 前言 最近在研究Java语言底层基础知识,发现对于JVM 内存模型理解不够深入.笔者突发奇想深入理解JVM内存模型,特在此介绍详细介绍一下JVM内存模型中的方法区.看似名称叫做方法区,其实不然. ...

  5. JVM内存模型、Java内存模型 和 Java对象模型

    一.JVM内存模型 1.JVM运行时数据区 二.Java内存模型(JMM) 1.JMM 三.Java对象模型 1.Java对象在JVM中的存储模型称之为Java对象模型.  四.总结  1.JVM内存 ...

  6. JVM内存模型、指令重排、内存屏障概念解析

    在高并发模型中,无是面对物理机SMP系统模型,还是面对像JVM的虚拟机多线程并发内存模型,指令重排(编译器.运行时)和内存屏障都是非常重要的概念,因此,搞清楚这些概念和原理很重要.否则,你很难搞清楚哪 ...

  7. jvm内存模型及分配

    1.什么是jvm? (1)jvm是一种用于计算设备的规范,它是一个虚构出来的机器,是通过在实际的计算机上仿真模拟各种功能实现的. (2)jvm包含一套字节码指令集,一组寄存器,一个栈,一个垃圾回收堆和 ...

  8. 一文带你深入理解JVM内存模型

    一文带你深入理解JVM内存模型 一.JAVA的并发模型 共享内存模型 在共享内存的并发模型里面,线程之间共享程序的公共状态,线程之间通过读写内存中公共状态来进行隐式通信 该内存指的是主内存,实际上是物 ...

  9. 详细分析JVM内存模型

    JVM内存模型 JAVA的主要特点是其著名的WOTA(write once, run anywhere):"编写一次,随处运行".为了应用它,Sun Microsystems创建了 ...

  10. java内存图怎么画,jvm内存模型怎么画?简单美观的模型图制作软件

    jvm内存模型是什么呢?jvm内存模型是一类用于描述由java栈.java堆.方法区.本地方法栈和程序计数器各部件构成的Java程序.在执行过程中,由jvm管理的不同数据区域的一类图表.jvm内存模型 ...

最新文章

  1. echarts x轴文字个数太多_echarts x轴标签文字过多导致显示不全,最有效的3种解决方法...
  2. ubuntu 16.04 ROS + kinect v2 安装
  3. SQL Server 创建约束图解 唯一 主键
  4. bzoj 3277 串 后缀树+子树不同数个数
  5. java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园
  6. springboot启动_Spring boot启动原理解析
  7. 【Gson】【1】Gson使用简介
  8. 夯实Java基础系列21:Java8新特性终极指南
  9. MySql大批量生成测试数据
  10. 医咖会免费SPSS教程学习笔记—肯德尔相关系数
  11. 17年社交网络老司机解读网红现象
  12. 第二届翼支付杯大数据建模大赛-信用风险用户识别Baseline 线上0.65+稳进复赛
  13. 51单片机数码管显示学习笔记
  14. 如何把PPT幻灯片压缩到最小
  15. oracle餐厅网络点餐系统_点餐系统产品演示
  16. 读取超大json文件中数据格式的方法
  17. 超级计算机国产cpu,中国的天河一号超级计算机用的是国产CPU还是尽...-卓优商学问答...
  18. python基础(一)字符串变形
  19. JAVA代码计算1900年到所求年份共多少天。
  20. FANUC机器人SRVO-348故障报警分析及处理对策

热门文章

  1. 全面的平板--Surface(各版本对比)
  2. 服务注册中心consul
  3. 【AIGC】大模型协作系统 HuggingGPT 深度解析
  4. Android之TBS浏览Word、Excel、PPT、PDF等文件
  5. 人工智能与神经生理学:差异为何重要
  6. 播音计算机论文,播音主持论文的题目或论文内容
  7. 【SecureFx服务器无法上传文中文件】
  8. 详解Vue中使用scope进行样式隔离
  9. Armv8-R系列之ARM Cortex-R52 由来
  10. 【VC】accent conversion 口音转换论文