JVM概览:内存空间与数据存储
核心的五个部分
虚拟机栈:局部变量中基础类型数据、对象的引用存储的位置,线程独立的。
堆:大量运行时对象都在这个区域存储,线程共享的。
方法区:存储运行时代码、类变量、常量池、构造器等信息,线程共享。
程序计数器:记录程序运行的位置,线程独立的。
本地方法栈:用于JNI本地方法操作的栈,线程独立的。
栈帧包含什么
虚拟机栈存在着一个个栈帧,一个栈帧表示一个被调用的方法,栈帧在方法调用的时候入栈,在方法执行完毕的时候出栈。
局部变量数组,顾名思义就是用于存储方法中的局部变量的,包括入参。其中实例方法的局部变量数组的第一个元素是调用这个方法的实例的引用,入参从第二个参数开始,而静态方法从第一个参数开始。
操作数栈,用于数据操作,例如方法的输入和输出运算,都会使用到操作数栈。
帧数据,存储的是常量池引用、如何方法返回,异常信息等等。
栈和堆数据存储
位置/数据类型 |
基础类型局部变量 |
引用类型局部变量的引用 |
引用类型局部变量的值 |
引用类型中包含的基础类型变量 |
引用类型中包含的引用类型变量的引用 |
引用类型中包含的引用类型变量的值 |
栈 |
√ |
√ |
||||
堆 |
√ |
√ |
√ |
√ |
防止引用溢出
对象的深度copy可以解决溢出问题。
JVM概览:内存空间与数据存储相关推荐
- 【C 语言】变量本质 ( 变量概念 | 变量本质 - 内存空间别名 | 变量存储位置 - 代码区 | 变量三要素 )
文章目录 一.变量概念 二.变量本质 1.变量本质 - 内存别名 2.变量存储位置 - 代码区 3.变量三要素 一.变量概念 变量概念 : 变量 是 既能读 , 又能写 的 内存对象 ; 与 变量 相 ...
- 【android】音乐播放器之数据存储总结
学习Android有一个多月,看完了<第一行代码>以及mars老师的第一期视频通过音乐播放器小项目加深对知识点的理解.从本文开始,将详细的介绍简单仿多米音乐播放器的实现,以及网络解析数据获 ...
- 面试回答,JVM内存模型/内存空间:运行时数据区
发布于个人公众号,打开微信,搜索MelodyJerry即可 本文由作者原文 [JVM|内存模型] Java虚拟机的内存模型?也就这7个而已 修改而来,可点击左下角阅读原文. JVM内存模型/内存空间 ...
- JAVA获取JVM内存空间和物理内存空间
一.获取JVM内存空间 系统环境:WIN JDK版本:1.8re 直接调用Runtime中相应的方法即可: public long maxMemory() Returns the maximum ...
- C语言实现通讯录【二】(动态内存开辟,文件数据存储)
C语言实现通讯录[二] 在C语言实现通讯录[一]的基础上进行优化,主要实现两大模块: 动态内存开辟 文件数据存储 动态内存开辟: 考虑到通讯录的大小无法固定,在C语言实现通讯录[一]版本上定义一个足够 ...
- 纪事本 乱码_纪事日记–可自定义的数据存储
纪事本 乱码 总览 使任何数据结构或算法尽可能快的方法是使代码完全执行您想要的操作,而无需执行其他操作. 建立一个可以做任何人想做的每件事的数据存储的问题是,它做得特别不好. 自定义数据存储在性能方面 ...
- 纪事日记–可自定义的数据存储
总览 使任何数据结构或算法尽可能快的方法是使代码完全执行您想要的操作,而无需执行其他操作. 建立一个可以做任何人想做的每件事的数据存储的问题是,它做得不好. 自定义数据存储在性能方面可以实现什么? 您 ...
- 一文解析JVM的内存结构,身为程序员还不弄懂JVM怎么行
欢迎关注专栏:Java架构技术进阶.里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦.微信公众号:慕容千语的架构笔记.欢迎关注一起进步. 前言 Jvm的内存结构是由<jav ...
- JVM详解【三】JVM的内存结构
JVM的内存区域 JVM的内存区域分为线程私有区域(程序计数器.虚拟机栈.本地方法区).线程共享区域(堆.方法区)和直接内存,如图所示 线程私有区域的生命周期与线程相同,随线程启动而创建,随线 ...
最新文章
- R语言构建多元线性回归模型
- 5G NGC — PCC 策略与计费控制框架
- 【UI自动化测试】Mac下进行Monkey测试
- 多线程原理实例应用详解
- Linux常用工具小结:(2) Mysql的rpm安装和编译安装
- oracle查询访问记录,[原创]Oracle Spatial新驱动的查询记录实例
- iTunes 安装ipa文件到iPhone上
- python培训班靠谱吗-上海比较靠谱的Python培训机构
- C:\WINDOWS\system32\drivers\etc\hosts
- sata和sas硬盘Linux,SAS硬盘和SATA硬盘最大的区别是什么?
- js将月份转换为英文简写的形式
- 为什么未平仓量指标很重要?因为机构投资者要来“赶牛”了!
- linux上命令调用smplayer,Linux播放器——RedHat下MPlayer和SMPlayer的安装
- 这是你希望的自由职业么
- 广东软件测试协会QQ群
- xxl-job源码解读:调度器schedule
- Oracle快速复制一张表
- 5角硬币中的币王,已价值16000元,谁家有?
- Python--pygame.Rect
- jQuery过滤、遍历同级元素、向上遍历、向下遍历
热门文章
- 更新:为 NGINX 配置免费的 Let‘s Encrypt SSL/TLS 证书
- Dijkstra算法、Floyd算法的区别与联系,并由此谈到greedy和DP
- 华为2018优招 解决方案技术工程师
- 设置win服务器代理
- 审查元素html表格后缀,审查元素
- 【NLP】keras Transformer 唐诗生成器
- openstack rally安装失败后折腾一遭
- 学计算机的目标作文,计算机学习计划作文三篇
- java开发用i5还是i7,办公用i5还是i7
- h3c交换机绑定在线计算机的命令,H3C 3100交换机怎么IP绑定MAC