2024年最全JVM的内存结构_heap space和permantspace(1),2024年最新阿里P8成长路线

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

1、废弃常量:若字符串“abc”进入了常量池,但当前系统没有任何String对象引用“abc”常量,则当发生内存回收(有必要的情况下)时,常量就会被回收。

2、无用的类:

  1. 该类的所有实例已被回收,Java堆不存在该类实例
  2. 加载该类的classloader已被回收
  3. 加载该类的class对象,没有任何地方引用,且也不能通过反射访问

heapspace分为年轻代和老年代。

年轻带的垃圾回收叫Young GC,老年代的垃圾回收叫Full GC。

在年轻代中经历了N次(可配置)垃圾回收后仍然存活的对象,就会被复制到老年代。(因此一般老年代可以被认为是存放生命周期较长的对象)

垃圾回收算法:

  1. 标记-清除算法(Mark-Swap):标记清除后会产生大量的碎片,以后分配内存较大的对象可能会找不到足够大的连续内存空间,从而导致下一次GC
  2. 复制算法:由于新生代的对象生命周期较短,老年代的对象存活率较高,把内存空间分成1块Eden空间和2块Survivor空间。垃圾回收时,把Eden和Survivor空间中活着的对象一次性复制到另一块Survivor空间中,再清理Eden和Survivor的空间。HotSpot默认Eden:Survivor=8:1.
  3. 标记-整理算法:和Mark-Swap一样,但最后复制后的存活对象向一端移动。
  4. 分代算法:新生代用复制算法,老年代用标记清理算法活着标记整理算法。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值