java堆个人理解

heap是oom发生的聚集地,它存储着几乎所有的对象实例,堆是由垃圾回收器自动回收管理,通常情况下堆占有内存空间是最大的,无节制创建对象会耗尽内存,-Xms256 表示memory start 表示启动时分配内存 - Xmx 1024表示 表示memory max 最大虚拟机分配内存1024兆,服务器运行时不断地扩大收缩内存造成不必要的系统压力通常在线上环境设置一样大

堆分成两块一个新生代和老年代,对象产生之初放在新生代 ,步入暮年进入老年代但是也有异常就是老年代会接收新生代无法接受的超大对象

新生代又分为 Eden + 2个survivor 绝大部分对象存在Eden上当Eden装满的时候触发YGC

新生代垃圾回将存活的对象放到survivor中的没有使用的区域将当前空间完全清除如果YGC移送的对象大于survivor空间直接送入

老年代 每个对象都有一个计数器每次垃圾回收的时候存活对象count + 1 防止个别对象一直survivor区域跳来跳去 达到某个阈值也被清除掉 -Xx:MaxTeningThresHold 设置1一次垃圾回购直接老年代 

创建一个对象首先放入Eden 区域如果放的下 放入 否则触发 YGC 

继续判断 Eden是否放的下放的下 放入 放不下 直接放入Old区域

判断OLd区域是否放的下 放的下放入 放不下触发Full Garbage Collection

继续判断放下不 放得下 放入 OLD区域 放不下 OOM

 

YGC 即是 Young Garbage Collection

首先判断Survivor放的下不 放的下放入 放不下 放入老年代OLD

放置s0/s1 区域 若达到设置阈值也直接放到老年代等待下次垃圾回收清除

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值