自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 G1回收器:区域分代化

g1回收器的特征如下:避免碎片化分区形式:g1可替换cms的场景:当一个region对象可能会被其他对象所引用,那当判断对象是否存活时,可能需要扫描整个java堆才能确保是否可以回收,这样就会降低回收效率解决方法:每个region都配备记忆集(rset),用来记录其他region对该region的引用,当开始对region2进行回收时,就会通过rset进行判断是否有被引用1.年轻代gcg1回收器的建议

2024-07-26 11:05:34 351

原创 CMS回收器(低延迟,并发)

答:在并发清理阶段,无法进行整理。因为这个算法的整理需要把所有被使用的对象移到一块位置,从而保证是有序的排列,而并发阶段是值垃圾清理和用户进程同时进行,所以无法采用上面所写的算法。而cms没法回收在并发标记阶段产生的新垃圾对象,这部分新的垃圾没有被标记 所以也无法回收。浮动垃圾:由于重新标记阶段 标记的垃圾是并发标记阶段怀疑是垃圾但还没有确认是否是垃圾。因为第二步是并发执行,为了修正并发所导致的误差,进行了重新标记。由于采用的是标记-清除算法 导致会产生碎片化的空间。cms的垃圾清理算法采用的是。

2024-07-23 16:06:03 211

原创 jvm垃圾清理算法(分代收集算法)

如果内存空间以规整和有序的方式分布,即已用和未用的内存都各自一边,彼此之间维系着一个记录下一次分配起始点的标记指针,当为新对象分配内存时只需要通过修改指针的偏移量将新对象分配在第一个空闲内存位置上,这种分配方式就叫做指针碰撞(Bump the Pointer)。就会造成太多的无用功,没有回收太多的垃圾对象且将大量的存活对象交换到另外一个区,重置了栈空间的引用地址。因为垃圾回收后,所剩下的对象是不规整的,需要标记那些空间被占用,哪些没有被占用。:在内存中,当指针指向的空间有对象,指针会按顺序跳到下一个空间。

2024-07-20 15:43:01 791

原创 gc算法之如何判断对象存活

当p指针不再指向next对象时,按理说三个对象都应该被gc,但实际三个对象的rc都是等于1,就不会被垃圾回收器给回收,从而造成了内存泄漏。例如方法中的局部变量对象等。例如在一个方法内部创建的对象,如果该方法还在执行,那么该对象被方法中的局部变量引用,就不是垃圾。内存泄漏:三个对象没有用处,应该被回收,但实际上rc不是0无法被标记从而无法被gc,占用着内存就叫内存泄漏。需要先标记要回收的对象,当一个对象不再被存活的对象继续引用时,这个对象就是已死亡。,这个字符串对象被常量引用,是 GC Root 对象。

2024-07-19 15:52:15 440 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除