今天学习了什么:
- 垃圾的回收过程一般分为两步,是哪两步
- 垃圾回收常见的两种算法是什么。
- 堆内存划分为:年轻代,年老代,永久代。垃圾回收器划分成:Minor Gc、Major Gc、Full Gc。这三种垃圾收回器都对应哪些区域?
- 对JVM调优的过程中,很大一部分工作就是对于Full Gc的调节,这句话对么?
-
- System.gc()的作用是什么? 总结: 回收两种步骤:
- 发现无用的对象
- 回收无用对象占用的内存空间 垃圾回收机制保证可以将“无用的对象”进行回收。 无用的对象指的是没有任何变量引用该对象。Java的垃圾回收器通过相关算法发现无用对象,并进行清除和整理。 两种算法:
- 引用计数法
- 引用可达法 对应区域
- 年轻代:所有新生成的对象放在Eden区,对应Minor Gc
- 年老代:在年轻代中循环了15次依旧存在的对象启动Major Gc和Full Gc(可以用到,可以不用)
- 永久代:用于存放静态文件,JDK8以后使用metaspace元数据空间和堆替代 对Full Gc的调节: 用于清理年轻代,年老代,永久代区域,成本较高会对系统性能产生影响 作用: 对FULL Gc提出建议