当前位置: 首页 > news >正文

JVM概览:内存空间与数据存储

核心的五个部分

虚拟机栈:局部变量中基础类型数据、对象的引用存储的位置,线程独立的。

堆:大量运行时对象都在这个区域存储,线程共享的。

方法区:存储运行时代码、类变量、常量池、构造器等信息,线程共享。

程序计数器:记录程序运行的位置,线程独立的。

本地方法栈:用于JNI本地方法操作的栈,线程独立的。

栈帧包含什么

虚拟机栈存在着一个个栈帧,一个栈帧表示一个被调用的方法,栈帧在方法调用的时候入栈,在方法执行完毕的时候出栈。

局部变量数组,顾名思义就是用于存储方法中的局部变量的,包括入参。其中实例方法的局部变量数组的第一个元素是调用这个方法的实例的引用,入参从第二个参数开始,而静态方法从第一个参数开始。

操作数栈,用于数据操作,例如方法的输入和输出运算,都会使用到操作数栈。

帧数据,存储的是常量池引用、如何方法返回,异常信息等等。

栈和堆数据存储

位置/数据类型

基础类型局部变量

引用类型局部变量的引用

引用类型局部变量的值

引用类型中包含的基础类型变量

引用类型中包含的引用类型变量的引用

引用类型中包含的引用类型变量的值

防止引用溢出

对象的深度copy可以解决溢出问题。

http://www.lryc.cn/news/37939.html

相关文章:

  • 固态存储设备固件升级方案
  • Python交通标志识别基于卷积神经网络的保姆级教程(Tensorflow)
  • 基于Selenium+Python的web自动化测试框架(附框架源码+项目实战)
  • Python进阶-----高阶函数zip() 函数
  • win10打印机拒绝访问解决方法
  • 深度学习训练营之数据增强
  • Tomcat安装及启动
  • 【专项训练】排序算法
  • Android压测测试事件行为参数对照表
  • 【观察】亚信科技:“飞轮效应”背后的数智化创新“延长线”
  • QT编程从入门到精通之十四:“第五章:Qt GUI应用程序设计”之“5.1 UI文件设计与运行机制”之“5.1.1 项目文件组成”
  • (二分)730. 机器人跳跃问题
  • vue3使用nextTick
  • 传统图像处理之颜色特征
  • GPS问题调试—MobileLog中有关GPS关键LOG的释义
  • 【企业管理】你真的理解向下管理吗?
  • Centos7 硬盘挂载流程
  • 认识vite_vue3 初始化项目到打包
  • 【Go】cron时间格式
  • leetcode 55. 跳跃游戏
  • Linux:文件流指针 与 文件描述符
  • 基于FPGA实现正弦插值算法
  • JavaWeb_会话技术
  • Reactor响应式流的核心机制——背压机制
  • [数据结构]栈的深入学习-java实现
  • 网络编程基础
  • 华为OD机试题 - 数列还原(JavaScript)| 机考必刷
  • 10-Oracle存储过程(创建,修改,使用及管理)
  • 创建线程的三种方法
  • 第一章---Pytorch快速入门---第三节---pytorch中的数据操作和预处理