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

硬件开发一站式平台网站加入购物车的代码

硬件开发一站式平台,网站加入购物车的代码,室内设计软件自学,建筑工程总公司系列文章目录 【JVM系列】第一章 运行时数据区 【JVM面试题】第二章 从JDK7 到 JDK8, JVM为啥用元空间替换永久代#xff1f; 【JVM面试题】第三章 JVM分代年龄为何是15次#xff1f;能设置为16吗#xff1f; 大家好#xff0c;我是青花。拥有多项发明专利#xff08;都是…系列文章目录 【JVM系列】第一章 运行时数据区 【JVM面试题】第二章 从JDK7 到 JDK8, JVM为啥用元空间替换永久代 【JVM面试题】第三章 JVM分代年龄为何是15次能设置为16吗 大家好我是青花。拥有多项发明专利都是关于商品、广告等推荐产品。对广告、Web全栈以及Java生态微服务拥有自己独到的见解。曾经辅导过若干个计算机专业的学生进入到软件开发行业就业。希望和大家一起成长进步。 今天给大家带来的文章JVM分代年龄为何是15次能设置为16吗希望对同学们有所帮助。 文章目录 系列文章目录一、堆内存划分二、GC三、对象头的存储结构3.1 对象头3.1.1、对象分代年龄 四、精简回答4.1、GC方面4.2、对象头设置4.3、从设计角度来看 总结 Java 面试专栏 JVM区域 JVM分代年龄为何是15次能设置为16吗 了解堆内存划分 了解JVM垃圾回收机制 了解对象头的存储结构 一、堆内存划分 在JVM的堆(Heap)内存里面分为伊甸园区(Eden space)、Survivor(From、TO)区、老年代(Old generation)。 二、GC 当我们在Java里面使用new关键字创建一个对象的时候JVM会在Eden区分配一块内存来存储这个对象。当Eden区的内存空间不足的时候就会触发Minor GC(新生代GC)进行对象回收。那些因为存在引用关系而无法回收的对象JVM会把他们转移到Survivor区。     Survivor内部分为From区和To区刚从Eden区转移过来的对象会分配到From区每经历一次Young GC这些没被回收的对象就会在From区和To区来回移动每移动一次这个对象的GC年龄就加1。默认情况下GC年龄达到15的时候JVM就会把这个对象移动到Old generation。 三、对象头的存储结构 一个对象的GC年龄存储在对象头里面。在HotSpot虚拟机里对象在堆内存中的存储布局可以划分为三个部分对象头Header、实例 数据Instance Data和对齐填充Padding。下面我们将从这三个方面认识对象的内存布局。 3.1 对象头 对象头主要包含两部分信息第一类是用于存储对象自身的运行时数据对象头的另外一部分是类型指针即对象指向它的类型元数据的指针Java虚拟机通过这个指针来确定该对象是哪个类的实例。     那么我们重点讲解下用于存储对象自身的运行时数据如哈希码HashCode、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等。官方称这部分数据为 “Mark Word” 如下图所示。 3.1.1、对象分代年龄 其中的age(对象分代年龄)可以看到它的存储空间是4bit4bit最大值上限是十进制的15。 这里科普一下bit 比特是英文binary digit的缩写。位bit 来自英文bit音译为“比特”表示二进制位。位是计算机内部数据储存的最小单位11010100是一个8位二进制数。一个二进制位只可以表示0和1两种状态2^1。 二进制转换十进制 十进制二进制4bit8bit11000100000001210001000000010311001100000011410001000000010051010101000001016110011000000110711101110000011181000100000001000910011001000010011010101010000010101110111011000010111211001100000011001311011101000011011411101110000011101511111111000011111610000超出范围00010000 四、精简回答 4.1、GC方面 在使用new创建对象时JVM会在Eden区分配一块内存来存储这个对象。当Eden区的内存空间不足的时候就会触发Minor GC(新生代GC)进行对象回收。那些因为存在引用关系而无法回收的对象JVM会把他们转移到Survivor区。     Minor GC非常频繁因此需要把Survivor区一直回收不了的数据放到Old区默认是S0、S1移动达到15次GC年龄达到15。 4.2、对象头设置 HotSpot虚拟机对象头里用4bit来存储GC分代年龄而4个bit能够存储的最大值是15。从这个角度来说 JVM分代年龄之所以设置成15次是因为它最大能够存储的数值就是15。     因此我们说虽然JVM提供了参数来设置分代年龄的大小但是这个大小不能超过15也就不能设置为16。 4.3、从设计角度来看 从设计角度来看当一个对象触发了最大值15次Minor GC(新生代GC)还没有办法被回收就只能移动到Old区。     另外设计者还引入了动态对象年龄判断的方式来决定把对象转移到Old区不管这个对象的GC年龄是否达到15次只要满足动态年龄判断的依据 也同样会转移到Old区。 总结 本章节从GC方面、对象头设置、Minor GC(新生代GC)设计角度这3个方面解析了JVM分代年龄为何是15次。 有兴趣的同学还可以扩展下Minor GC(新生代GC)、Full GC的频率什么条件触发有哪些垃圾回收算法等等。
http://www.dnsts.com.cn/news/152122.html

相关文章:

  • 网站备案证书在哪里下载qq空间秒赞秒评网站推广
  • asp网站开发教程pdf石家庄新闻综合频道在线直播回放
  • 重庆大良网站建设wordpress用mysql5.6
  • 济宁网站建设电话怎样建设一个网站
  • 网站建设的需求和目的外贸网络推广电话
  • 公司网站改版多少钱万维网 网站 主页 网页
  • 陕西整站关键词自然排名优化学院网站建设需求说明书
  • 利用建站系统wordpress建设网站怎么知道网站是某个公司做的
  • 艺术网站制作如何修改wordpress模板栏目的属性
  • 唐山建设工程造价信息网站增强网站互动
  • 网站建设及上线流程深圳建筑图片大全高清
  • 元氏县城有做网站广告的吗wordpress后台添加导航
  • 网站开发之ios知识扩展旅游电网站建设目标
  • 唐山网站建设策划免费的拓客平台有哪些
  • 网站建设服务费应该算什么科目外贸网站如何建站
  • 青冈网站建设财税公司做网站
  • 网站空间代理加盟给赌场做网站
  • 精美合同网站建设广东响应式网站
  • 南宁网站建公司电话开源企业网站内容管理系统
  • 长沙app网站开发优秀网页设计作品案例欣赏
  • 网站如何做链接企业系统查询官网
  • 邯郸企业做网站方案贵金属交易平台app最新排名
  • 专做正品 网站wordpress子站点打不开
  • 义乌市做网站网站建设简单合同
  • 长春网站建设wang企业网站建设后期维护费用
  • 网站域名及空间购买网站推广优化教程
  • 淘宝联盟填网站备案重庆镇海seo整站优化价格
  • 做网站中的镜像是什么免费推广的途径与原因
  • 电子商务网站建设的首要问题沧州app商城定制开发
  • 肥西县建设官方局网站比较好的商城网站设计