![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cdf9ab9a6b62eec6abbd290b3695dd42.jpeg#pic_center)
Java gc 主要回收的是 方法区 和 堆 中的内容
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c89d9850c3d7556ad1364eb8fea029c7.png#pic_center)
类加载器
常考考点:
- 类加载器是什么
- 双亲委派机制
- Java类加载的沙箱安全机制
常见的垃圾回收算法
引用计数
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/a34ebd51b1f3a96f85bcb19f4688a640.png#pic_center)
复制算法
复制算法在年轻代
的时候,进行使用,复制时候有交换
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0782cf9622451f1b45b309478521e7cd.png#pic_center)
优点:没有内存碎片
缺点:消耗内存
标记清除
先标记,后清除。用于老年代
多一些
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/309237b7cc3b02158d08f71640b34481.png#pic_center)
优点:不会消耗那么多内存
缺点:会产生内存碎片
标记整理
也叫标记清除整理,多用于老年代
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/652ed245f4e21456c74bc8640e357f6d.png#pic_center)
优点:不会消耗太多内存;不会有内存碎片
缺点:比较耗时
总结:没有完美的算法,只有合适的算法,一般采用分代收集算法