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

JVM对象内存分配机制全解析

jvm创建对象的内存分配过程

在这里插入图片描述

1、逃逸对象在栈上分配

通过在栈上为对象分配内存,使对象占用的内存空间随着方法结束栈帧弹出而销毁,避免了GC垃圾收集器回收对象,减小GC的压力;

栈上分配内存依赖逃逸分析和标量替换。

逃逸分析

  • 分析对象的动态作用域
  • 逃逸:当一个对象在方法中被定义后,可能被外部对象所引用,比如方法返回了该对象,则该对象的作用域范围不确定,可能存在被其他对象访问
  • 没有逃逸:当对象在方法内使用,作用域仅在方法内部,比如实体对象入库完就结束了

标量替换

  • 通过逃逸分析确定对象不会被外部访问之后,会将对象在栈上创建,通过标量替换将对象进一步分解,将该对象的成员变量分解为方法的成员变量,在栈帧或者寄存器为这些代替的成员变量分配空间。
  • 启标量替换参数:-XX:+EliminateAllocations,JDK7之后默认开启
  • 标量与聚合量:标量不可被进一步分解的量,java的基本数据类型int、long以及reference类型是标量;聚合量是可分解的量,java的对象就是可被进一步分解的聚合量。
2、
http://www.lryc.cn/news/572901.html

相关文章:

  • CSS Content符号编码大全
  • 「AI高校」| 《清华大学:AI赋能教育高考志愿填报工具使用指南》
  • 榕壹云婚恋相亲系统:ThinkPHP+UniApp打造高效婚配平台
  • c++set和pair的使用
  • joomla 使用nginx服务器只能打开首页,其他页面404的解决方案
  • win7上搭建FTP服务器步骤
  • OSI网络通信模型详解
  • I排序算法.go
  • 互感器铭牌图像识别系统
  • 【系统规划与管理师第二版】1.2 信息技术及其发展
  • 阿里巴巴开源的 分布式事务解决方案Seata
  • A028自动升降机+S71200+HMI+主电路图+外部接线图+流程图+IO分配表
  • HTTP与HTTPS深度解析:从明文传输到安全通信的演进之路
  • Hadoop 技术生态体系
  • 京运通601908,一只值得长期跟踪操作的波段投资标的,两个指标即可做好
  • 迅为RK3562开发板Android 设置系统默认不锁屏
  • [论文阅读] 人工智能+软件工程 | 用大语言模型架起软件需求形式化的桥梁
  • 游戏架构中的第三方SDK集成艺术:构建安全高效的接入体系
  • subprocess.check_output和stdout有什么不同 还有run和popen
  • Docker 常用运维命令
  • 【系统规划与管理师第二版】1.3 新一代信息技术及发展
  • React ahooks——useRequest
  • 空壳V3.0,免费10开!
  • PowerShell批量处理文件名称/内容的修改
  • 【量化】策略交易之相对强弱指数策略(RSI)
  • websocket入门到实战(详解websocket,实战聊天室,消息推送,springboot+vue)
  • 【Docker基础】Docker镜像管理:docker commit详解
  • 【flink】 flink 读取debezium-json数据获取数据操作类型op/rowkind方法
  • “地标界爱马仕”再拓疆域:世酒中菜联袂赤水金钗石斛定义中国GI
  • GM DC Monitor v2.0 卸载教程