Type: concept
Confidence: 0.95
Created: 2026-04-17
Updated: 2026-04-17
Tags: 技术研究计算理论

垃圾回收

概述

垃圾回收(Garbage Collection)是一种自动内存管理机制,由 John McCarthy 在1960年 LISP 论文中首次提出。系统自动识别并回收不再使用的内存,使程序员无需手动管理内存生命周期。

关键内容

原始设计

McCarthy 提出了一种标记-清除(mark-and-sweep)算法: 1. 当可用内存耗尽时,系统暂停程序执行 2. 扫描所有可达的数据结构 3. 将不可达的内存单元回收到空闲列表中

解决的问题

在没有自动内存管理的语言中,程序员必须手动释放不再使用的内存——这不仅繁琐,而且极易出错: - 忘记释放 → 内存泄漏 - 过早释放 → 悬垂指针

现代影响

今天,Java、Python、Go、JavaScript、Ruby、C#、Kotlin、Swift 等绝大多数现代编程语言都采用了某种形式的自动垃圾回收。GC 算法也从最初简陋的标记-清除发展为分代收集、并发收集、增量收集等多种高效变体。

只有少数语言不使用 GC

C、C++ 和 Rust(通过所有权系统替代 GC)等少数语言还要求程序员显式管理内存。

来源

相关