jvm初识(2)

5 篇文章 0 订阅

堆内存的讲解

 

类刚被初始化的时候,类的基本信息基本上都是被加载到了新生代,新生代就是对象刚刚初始化的时候需要放入的位置,但是如果一个对象是足够的庞大,也是有可能直接送入老年代进行管理的,因为新生代的内存一般比老年代小.常用的新生代与老年代的比值为1:4.

一个普通对象可能需要通过若干次GC,才会把变量移动至老年代,老年代是说,经过了多次GC,但是依据保留着,就说明这个对象可能是一个使用非常频繁的对象,因此JVM会把对象移入老年代进行管理.一般不会发生改变,这样方便GC进行清扫。

Java堆中一共可分为 新生代和老年代

新生代又可继续分为eden,from,to区

eden可翻译为伊甸园,取自《圣经》中,人类的始祖亚当与夏娃最初居住的地方,也就是说,所有的变量等,最开始都是先在eden中,然后等待GC进行清扫,如果GC经过了若干次清扫之后,变量依然存在,那么Jvm就会认为这个变量比较可靠,是一个需要长久的进行维护的,因此就需要放入老年区,老年区,就是jvm比较少干扰的一个区域,而且一般内存与区比新生代要大,可通过不同的参数进行配置,但是一般建议老年代:新生代=8:2,从而就可以看到老年代是很大的。

from和to区,是GC的一个复制算法需要的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值