JVM内部结构图

在这里插入图片描述

二、Jvm运行时内存(jvm堆)

在这里插入图片描述

(1)新生代:

jvm新创建对象(除大对象外)会被放入新生代,jvm会频繁创建对象,所以新生代区数据量打,且对象不稳定可以被回收的对象多。则会频繁触发新生代的MinorGc进行回收垃圾。

  • Eden区:java创建对象时首先会被存放在Eden区,如果对象属于大对象,则直接放入老年代中。
  • ServivorTo区:保留上一次MinorGc时的幸存者
  • ServivorFrom区:将上一次的幸存者作为这一次的被扫描者,操作就是将ServivorTo内容复制到 ServivorFrom区

特点:新生代垃圾回收过程叫做MinorGc,采用复制算法实现
每进行一次MinorGc回收存活的对象都会被+1,直到15(系统默认15)后将该对象放入老年代中。

(2)老年代:

		老年代主要存放长生命周期,大对象。采用**MajorGC**
		对象比较稳定,MajorGC不会被频繁触发。
		
		MajorGC采用标记清除算法。
		老年代空间不足时会抛出Out of Memory异常

(3)永久代

永久代指内存的永久保存区,主要存放Class文件和Mate(元数据)的信息。Class类在加载时被放入永久代。
Gc不会在程序运行期间对永久代进行清理
所以在加载Class类过多时会抛出 Out Of Memory 异常

在Java8中,jvm将类的元数据放入本地没存,将常量池静态变量放入Java方法区中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐睡睡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值