概述

你可能在电视剧中看到坏人威胁主角的时候会拿出作为人质的亲人写的信,而主角一看笔迹就知道是亲人所写的了。

在这里笔迹起到了两个作用:

  • 证明信的内容确实是亲人所写
  • 证明内容没有被篡改过

在计算机的世界中,我们同样需要对信息一样的验证。

随缘科普

分代回收算法是一种用于回收垃圾对象的算法。

针对生命周期不同的对象采取不同的回收策略。

例如:

  • 对于朝生暮死的对象放到A区域,且对A区域使用复制算法。
  • 对于寿命比较长的对象放到B区域,且对B区域使用标记-清除算法。
学习笔记 > 垃圾回收(GC)

增量回收算法

增量回收算法是一种用于回收垃圾对象的算法。

每次执行只会执行一部分回收工作。

并发回收算法

并发回收算法是一种用于回收垃圾对象的算法。

通常会和增量回收算法一同使用。

让GC和应用程序交替执行。

优点是避免了回收期间应用程序长时间的停顿。

缺点是因为频繁切换上下文导致系统吞吐量下降。

学习笔记 > 垃圾回收(GC)

标记-压缩算法是一种用于回收对象的算法。

标记-压缩算法会将存活的对象移动到内存的一端,然后直接清理掉其它内存空间。

优点是避免了复制算法中内存折半的缺点,并且也不会产生内存碎片。

缺点是如果存活的对象比较多移动对象的开销依旧会很大。

学习笔记 > 垃圾回收(GC)

复制算法是一种用于回收对象的算法。

  1. 将内存分为两块,每次只使用一块。
  2. 回收时将无需回收的对象拷贝到另一个内存块中。
  3. 然后回收当前内存块的所有对象。

优点是回收后不会产生内存碎片。

缺点是可用内存折半,而且存活的对象较多时复制对象的开销会很大。

学习笔记 > 垃圾回收(GC)

标记-清除算法是一种用于回收的对象的算法。

标记-清除算法的分为两个阶段:

  • 标记:标记需要回收的对象。
  • 回收:回收需要的对象。

优点是简单。缺点是容易产生大量的内存碎片,降低内存利用率。

学习笔记 > 垃圾回收(GC)