
垃圾收集回收不再使用的物件是為了釋放堆記憶體嗎?記憶體洩漏是否代表沒有足夠的堆內存空間供程式運行?那我們通常說的「記憶體不足」是指「運行時記憶體不足」也就是「堆記憶體」嗎?
答案1
垃圾收集通常確實指的是堆記憶體。
請注意,記憶體洩漏和記憶體不足錯誤不是同義詞。記憶體洩漏是這樣一種情況:不再需要某些分配的記憶體區塊(例如,OO 語言中的物件),但由於某種原因無法釋放/收集(例如,程式設計師忘記清除對其的某些引用) 。
您可能會遇到不會導致記憶體不足錯誤的記憶體洩漏(如果洩漏足夠小),並且您可能會在沒有記憶體洩漏的情況下收到此類錯誤(如果您合法地嘗試分配比進程可用的記憶體更多的內存) )。