JVM——垃圾回收的基本概念

本文探讨了Java内存溢出、内存泄漏问题以及StopTheWorld事件。讲解了垃圾回收的并行和并发执行,重点介绍了安全点和安全区域的概念,解释了如何确保在GC时所有线程到达安全点。同时,阐述了强、软、弱、虚四种引用的区别,并指出它们与OOM的关系。最后,讨论了如何管理引用以避免内存问题。
摘要由CSDN通过智能技术生成

内存溢出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uphtc49D-1657778953567)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220629233545670.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ffp09r4n-1657778953568)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220629233724718.png)]

内存泄漏

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iGne4atL-1657778953568)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220629233828213.png)]

Stop The World

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9B6BDs3U-1657778953569)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220709140646245.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bIxR7PbZ-1657778953569)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220709140844939.png)]

垃圾回收的并行和并发

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lBTn8VFF-1657778953570)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220709141651740.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vw761UAK-1657778953570)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220709141747631.png)]

安全点和安全区域

程序执行时并非在所有地方都能停顿下来开始GC,只有在特定的位置才能停顿下来开始GC,这些位置成为“安全点”

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u90LSvx4-1657778953571)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220709142047983.png)]

如何在GC发生时,检查所有线程都跑到最近的安全点停顿下来呢?

  1. 抢占式中断(中断所有线程,如果还有线程不在安全点,就恢复线程,让线程跑到安全点)
  2. 主动式中断(设置一个中断标志,各个变成运行到Safe Point时候主动轮询,如果这个中断标志为真,则将自己进行中断挂起)

安全区域

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kAhpPx23-1657778953572)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220709142557086.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bfE1mh8j-1657778953573)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220709142719847.png)]

强软弱虚四种引用之间的区别

这四种引用强度依次递减

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-28ye7zWU-1657778953574)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220709143230846.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uollmzpm-1657778953574)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220709143518010.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7mJRLP61-1657778953575)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220709143841541.png)]

OOM的产生也是因为强引用的存在

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-17VgNAtB-1657778953575)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220709144346599.png)]

当内存不够了,就会被回收;否则不会被回收

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DUX9ud3H-1657778953576)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220709145540625.png)]

已发生GC就会被回收

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vbzSQ0Lo-1657778953577)(D:\Learn\java\JVM\垃圾回收的基本概念.assets\image-20220709150158590.png)]

;否则不会被回收

[外链图片转存中…(img-DUX9ud3H-1657778953576)]

已发生GC就会被回收

[外链图片转存中…(img-vbzSQ0Lo-1657778953577)]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值