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

广东省建设工程造价管理协会网站银川 网站建设

广东省建设工程造价管理协会网站,银川 网站建设,淮安app开发公司,联享品牌网站建设公司对象的创建流程与内存分配 创建流程对象内存分配方式内存分配安全问题对象内存分配流程【重要】:对象怎样才会进入老年代?重点 案例演示:对象分配过程大对象直接进入老年代02-对象内存分配的过程: 创建流程 加载 验证 解析 准备 初始化 使用 写在 对象内存分配方式 内存分配…

对象的创建流程与内存分配

  • 创建流程
  • 对象内存分配方式
  • 内存分配安全问题
  • 对象内存分配流程【重要】:
    • 对象怎样才会进入老年代?重点
  • 案例演示:对象分配过程
    • 大对象直接进入老年代
    • 02-对象内存分配的过程:

创建流程

加载
验证
解析
准备
初始化
使用
写在

对象内存分配方式

内存分配的方法有两种:不同垃圾收集器不一样

  • 指针碰撞(Bump the Pointer)
  • 空闲列表(Free List)
    在这里插入图片描述
    指针碰撞示意图:
    在这里插入图片描述

内存分配安全问题

在分配内存的时候,虚拟机给A线程分配内存过程中,指针未修改。此时B线程同时使用了同样一块内存。是不是就出现了线程的安全性问题?
在JVM中有两种解决办法:

  1. CAS 是乐观锁的一种实现方式。虚拟机采用 CAS 配上失败重试的方式保证更新操作的原子性。
  2. TLAB本地线程分配缓冲(Thread Local Allocation Buffer即TLAB):为每一个线程预先分配一块内存

JVM在第一次给线程中的对象分配内存时,首先使用CAS进行TLAB的分配。当对象大于TLAB中的剩余内存或TLAB的内存已用尽时,再采用上述的CAS进行内存分配。

对象内存分配流程【重要】:

在这里插入图片描述

对象怎样才会进入老年代?重点

对象内存分配:

  • 新生代:新对象大多数都默认进入新生代的Eden区
  • 进入老年代的条件:四种情况
    在这里插入图片描述
    在这里插入图片描述
    老年代的担保示意图:
    在这里插入图片描述

小结

  1. 当Eden区存储不下新分配的对象时,会触发minorGC
  2. GC之后,还存活的对象,按照正常逻辑,需要存入到Survivor区。
  3. 当无法存入到幸存区时,此时会触发担保机制
  4. 发生内存担保时,需要将Eden区GC之后还存活的对象放入老年代。后来的新对象或者数组放入Eden区。

案例演示:对象分配过程

大对象直接进入老年代

package com.hero.jvm.object;
/**
* 测试:大对象直接进入到老年代
* -Xmx60m -Xms60m -XX:NewRatio=2 -XX:SurvivorRatio=8 -XX:+PrintGCDetails * -XX:PretenureSizeThreshold
*
*/
public class YoungOldArea {public static void main(String[] args) {byte[] buffer = new byte[1024*1024*20]; //20M}
}
-XX:NewRatio=2 新生代与老年代比值
-XX:SurvivorRatio=8 新生代中,Eden与两个Survivor区域比值 
-XX:+PrintGCDetails 打印详细GC日志
-XX:PretenureSizeThreshold 对象超过多大直接在老年代分配,默认值为0,不限制

在这里插入图片描述

02-对象内存分配的过程:

/*
-Xmx600m -Xms600m -XX:+PrintGCDetails
*/
public class HeapInstance {public static void main(String[] args) {List<Picture> list = new ArrayList<>();while (true){
} }try {Thread.sleep(20);} catch (InterruptedException e) {e.printStackTrace();
}list.add(new Picture(new Random().nextInt(1024 * 1024)));
}
class Picture{private byte[] pixels;public Picture(int length){this.pixels = new byte[length];}
}

在这里插入图片描述

http://www.yayakq.cn/news/200407/

相关文章:

  • 网站后台账号密码忘记了企业网站总结
  • 现在开网站做微商赚钱吗怎么在百度上做广告推广
  • 广州做网站哪里好做网站的问题
  • 网站开发类论文东莞网站设计公司哪家好
  • 国外做枪视频网站北京广告公司有哪些
  • 织梦网站怎么重新安装教程wordpress 自动推送
  • 做网站需要哪些方面的支出百度seo优化技术
  • 宁波搭建网站网站建设怎样
  • 咸宁建设网站东莞环保公司
  • 网站建设原则包括哪些内容关键词优化是怎么弄的
  • 南京建网站公司郑州正规的网站设计
  • 建企业网站建设注意问题游戏制作专业
  • 如何做网站宣传服装网站开发课程设计
  • 网站空间不续费wordpress 类似的博客系统
  • 宁波网站设计推广服务公司互联网服务行业有哪些工作
  • 海洋牧场网站建设青岛网站推广怎么选
  • wordpress站点搬家ui界面设计介绍
  • 网站建设的一般流程网站开发流程注意事项
  • 怎么在网站后台做图片新闻头像制作网站
  • 加油站建设专业网站WordPress 不显示主题页
  • 以网站内容建设和运维为主php培训机构企业做网站
  • 浪琴手表网站建设图专业的app开发制作公司
  • 彩票网站的统计怎么做广州网站建设 推广公司哪家好
  • 网站网讯卖书的网站怎么做
  • 建站公司网站 phpwinddede 管理多个网站
  • 中国建设协会官网站大连做网站哪家服务好
  • wordpress注册弹窗代码台州网站seo
  • 东坑镇做网站微网站建设的第一步是进行
  • 北京网站优化培训广东建设继续教育网站
  • 宁波建设监理管理协会网站自己的服务器做网站要备案