垃圾回收机制,依赖JRE和JVM,涉及操作系统中内存的分配与回收。依据所学,我猜想这种机制需要的数据结构是堆内存分配表(链),管理已分配和未分配的堆内存,对于已分配堆内存,需要知道由栈内存中的哪些变量引用。知道了这些,依赖垃圾检测和回收算法,把长期未得到栈变量引用的堆内存块回收,挂到未分配内存表中。清理完成后可能会进行碎片整理,相应地修改分配表。
垃圾检测和回收算法,会随着Java版本、操作系统不同而不同。而且垃圾检测和回收算法可以手动选择。