编程语言中的垃圾收集是否用于收集堆内存而不是其他用途?

编程语言中的垃圾收集是否用于收集堆内存而不是其他用途?

垃圾回收就是回收不再使用的对象,也就是释放堆内存?内存泄漏是不是代表程序运行时堆内存空间不够?所以我们平常说的“内存不足”是指“运行时内存不足”,也就是“堆内存”?

答案1

垃圾收集通常确实是指堆内存。

请注意,内存泄漏和内存不足错误不是同义词。内存泄漏是指不再需要某些已分配内存块(例如,面向对象语言中的对象),但由于某种原因无法释放/收集(例如,程序员忘记清除对它的某些引用)。
您可以发生内存泄漏但不会导致内存不足错误(如果泄漏足够小),并且您可以在没有内存泄漏的情况下获得此类错误(如果您合理地尝试分配比进程可用内存更多的内存)。

相关内容