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

在线做GO分析的网站国家免费培训学校

在线做GO分析的网站,国家免费培训学校,电商网站建设内容规划,企业官网怎么查问题:java中创建的对象一般放在哪里?(全流程包含从创建到回收) 回答 大部分对象在堆中,这个基本都知道; 少部分对象是会在栈中的,比如作用域不局限于方法内的方法内部变量,这类对象的特征一般就是生命周期…

问题:java中创建的对象一般放在哪里?(全流程包含从创建到回收)

回答

大部分对象在堆中,这个基本都知道;
少部分对象是会在栈中的,比如作用域不局限于方法内的方法内部变量,这类对象的特征一般就是生命周期短、内存小;
至于为什么要放一部分进栈中,是为了避免这种小而短的对象加大GC的频率,这种对象方法结束会随着栈帧的释放而释放,减少堆的垃圾回收的压力。
在jdk1.6之后,基本都默认开启了相关配置,去监测这种所谓的逃逸对象,当 发现对象没有逃逸的可能,作用域仅局限于方法内且大小没那么大时,就会把它分配到栈中,这些都有相关参数可以配置。

问题:讲了栈中的对象,那你讲讲放入堆中的对象一般是怎么处理的?

回答

在这里插入图片描述

常规情况下,我们创建的对象,都默认是生命周期比较短的,优先分配在年轻代的Eden区。
然后就进入了常规的分代收集算法的流程,这里可以参考另一篇博客中的分代收集算法部分最全的GC流程描述
这里再补充一下里面没提到的几个细节

  1. 为什么默认年龄是15? 在程序编程中,15是个很敏锐的数字,因为是2^4-1,也就是4个比特位所能表达的对象大小。事实上,java对象头上存储分代年龄的长度确实就是4bit,详见多线程原理之synchronized锁的原理
  2. 动态年龄判断 除了年龄达到15,还有一个方式会进入老年代,就是在survivor空间中相同年龄的对象的总大小大于总空间大小的一半,那么此时年龄大于等于这个相同年龄的对象都会进入老年代。简单来说,就是动态的决定进入老年代的年龄阈值,比如年龄为3的对象就占了超过一半的空间大小,说明老龄化很严重了,有必要提前把它们放进老年代。
  3. 空间分配担保 在minorGC之前,会检查老年代最大连续可用空间是否大于新生代所有对象的总空间,来保证GC之后的对象若进入老年代的话有地方去。如果不够,通常就是fullGC,但是我们的原则是能不full就不full,所以有了一个空间分配担保机制----当出现上述情况时,检查老年代最大连续可用空间是否大于历代回收到老年代的对象的平均大小,如果大于,那么直接fullGC;如果小于这个平均大小,那就认为这次大概率也不会超过,正常发起minorGC即可。
http://www.hengruixuexiao.com/news/28518.html

相关文章:

  • 网站建设文化传播有限公司关键词查找
  • dreamwearver可以做网站吗关键词seo优化软件
  • 装修网站建设公司桂平seo关键词优化
  • vs2012手机网站开发教程韩国seocaso
  • 顺德网站建设代理商广州网站优化公司如何
  • flash个人网站设计杭州百度推广优化排名
  • 网站建设需要什么人网站优化排名方案
  • 昌乐网站建设电商运营怎么自学
  • 谷歌sem服务商windows优化大师兑换码
  • 制作一个网站大概要多少钱seo销售话术开场白
  • 手机端原神seo百度关键词优化
  • 无锡网站seo做销售有什么技巧和方法
  • 安康网站建设技巧拼多多代运营公司十大排名
  • 如何在网上推广自己seo排名赚app是真的吗
  • 网站建设及上线流程营销策略怎么写
  • vue.js和vs做网站比较郑州网站优化哪家好
  • 1对1视频商丘网站seo
  • 广州网站开发公司有哪些网络广告的计费方式
  • 婚恋网站做翻译googleseo服务公司
  • jsp在网站开发中的优势百度运营优化师
  • 做柜子比较好看的网站怎么开网站
  • 帮朋友做网站 知乎关键词推广排名软件
  • 烟台哪里做网站好国际新闻界
  • 公司网站续费谷歌官方网站注册
  • 优质手机网站建设企业网站建设维护
  • 空包网站怎么做自己怎么优化网站排名
  • 国外html5做的音乐网站seo搜索优化公司排名
  • 电子商务网站建设 臧良运 好不好培训计划方案模板
  • 淘客网站做单品类百度服务中心
  • 软件园专业做网站qq空间刷赞推广网站