垃圾收集
垃圾收集是池计算机的系统恢复存储当程序不再需要存储时,程序正在使用的。这将释放存储空间供其他程序(或程序内的进程)使用。它还可以确保使用越来越多池存储的程序不会达到其配额(在这种情况下,它可能无法再运行)。
垃圾收集是许多现代编程语言中的一种自动内存管理功能,例如JAVA和。net框架中的语言。使用垃圾收集的语言通常在虚拟机就像虚拟机. 在每种情况下,运行代码的环境也负责垃圾收集。
在较旧的编程语言中,例如C和c++,分配和释放内存由程序员手动完成。对于不能存储在基本数据类型中的任何数据(包括对象、缓冲区和字符串),通常在堆上保留内存。当程序不再需要数据时,程序员通过API调用释放该数据块。由于此过程是手动控制的,因此人为错误可能会在代码中引入错误。当程序不再需要内存后,程序员忘记释放内存时,就会发生内存泄漏。其他时候,程序员可能试图访问已经释放的内存块,导致指针悬空,从而导致严重的错误甚至崩溃。
带有自动垃圾收集器(GC)的程序试图通过自动检测何时不再需要一段数据来消除这些错误。GC有两个目标:应该释放任何未使用的内存,并且除非程序不再使用它,否则不应该释放任何内存。尽管有些语言也允许手动释放内存,但许多语言不允许。