一、什么是垃圾回收器

根据垃圾回收器这个名字我们可以知道,其主要作用是用来回收内存中已被判定无用的垃圾对象。但是垃圾回收器在扫描过程中,寻找并标记的其实是还在存活的对象。当查找完全部存活对象后将未标记的对象进行统一的回收。

对于一个垃圾回收器,它其实主要需要完成三件事情

1.分配内存:垃圾回收算法的设计往往决定了内存模型和内存分配的方式

2.确保存活对象不会受到垃圾回收的影响

3.回收垃圾对象

二、手动内存管理

在我们开始介绍垃圾回收器的现状之前,让我们一起快速回顾一下那个还需要手动释放申请/释放内存的岁月。如果你忘记了释放它,你就无法再次使用这片内存。(作者想表达的意思应该是:如果开发者没有精确掌控这片内存区域,那么下次对这片内存区域的操作得到的期望值将不可控)。这片内存可以被声明,但是不能被使用。这种情况被称为内存泄露。忘记释放内存是常常发生的事情。与今天相比,内存泄漏在以往是更为常见的问题。你只能通过修复代码来修复它们。因此,更好的方法是自动回收未使用的内存,完全消除人为疏忽导致错误的可能性。这种自动化机制称为垃圾收集(简称GC