不可訪問記憶體是指一組沒有任何可訪問指針指向的由電腦程式進行動態分配的記憶體塊。類似的,一個不可訪問對象是指沒有可訪問引用型指向的動態分配對象。通俗來說,不可訪問記憶體是程式無法直接訪問的動態記憶體,同時也無法通過指針指向一個可訪問的起始對象來進行訪問。
動態記憶體分配的實現是採用了垃圾回收機制,在一個對象不可訪問後,它會被回收。垃圾收集器能決定是否一個對象還是可訪問的;任何被確定不可訪問的對象將會被釋放。在許多程式語言中(例如:Java,C#,D語言,Dylan)都使用了自動垃圾回收機制。
相反的,在動態記憶體分配機制中,當需要明確釋放的記憶體變得不可訪問時,此記憶體可以不再明確釋放。在使用人工記憶體管理中,系統中的不可訪問記憶體會導致記憶體泄漏。
一些垃圾收集器使用弱引用。如果一個對象能夠通過弱引用或者包含弱引用的連結,那么這個對象可以被稱為弱訪問。垃圾收集器能夠把弱訪問的對象圖視為不可訪問的,並且釋放它。(反過來說,防止對象被當作垃圾收集的引用被稱為強引用;通過只含有強引用的連結來訪問的弱可訪問對象是不可訪問的。)一些垃圾回收的面向對象語言,例如Java和Python,擁有弱引用的特性。Java包java.lang.ref提供了軟引用,弱引用和虛引用,產生了其他對象訪問狀態可軟訪問和可虛訪問。
不可訪問記憶體往往和[[[軟體老化]]]有關。
相關詞條
-
記憶體
記憶體是計算機中重要的部件之一,它是與CPU進行溝通的橋樑。計算機中所有程式的運行都是在記憶體中進行的,因此記憶體的性能對計算機的影響非常大。記憶體(Memor...
硬體介紹 分類 頻率 發展 其他記憶體 -
擴充記憶體
擴充記憶體(Expanded Memory): 在1985年初,Lotus、Intel和Microsoft三家共同定義了LIM-EMS,即擴充記憶體規範,通...
擴充記憶體概述 電腦擴充記憶體 播放器擴充記憶體 擴展記憶體和擴充記憶體的區別 書籍中的定義 -
記憶體控制器
記憶體控制器是計算機系統內部控制記憶體並且通過記憶體控制器使記憶體與CPU之間交換數據的重要組成部分。記憶體控制器決定了計算機系統所能使用的最大記憶體容量、記憶體BA...
分類 工作原理 發展過程 運算 控制器 -
記憶體泄漏
記憶體泄漏(Memory Leak)是指程式中己動態分配的堆記憶體由於某種原因程式未釋放或無法釋放,造成系統記憶體的浪費,導致程式運行速度減慢甚至系統崩潰等嚴重後果。
簡介 泄漏原因 檢測方法 檢測工具 -
java記憶體模型
Java平台自動集成了執行緒以及多處理器技術,這種集成程度比Java以前誕生的計算機語言要厲害很多,該語言針對多種異構平台的平台獨立性而使用的多執行緒技術支...
JMM簡介 堆和棧 java對象的記憶體分配 -
linux共享記憶體
共享記憶體是進程間通信中最簡單的方式之一。共享記憶體允許兩個或更多進程訪問同一塊記憶體,就如同 malloc() 函式向不同進程返回了指向同一個物理記憶體區域的...
本地通信 記憶體模型 分配 綁定脫離 控制釋放 -
記憶體測試
記憶體測試是指記憶體在生產過程中經歷的多次檢測,這些檢測包括:焊接檢測、PCB外觀檢測、功能檢測和整體外觀檢測等。 另一方面也指軟體記憶體測試。它還需要測試軟...
記憶體測試的需求來源 記憶體測試方法的發展趨勢 基於嵌入式的軟體記憶體測試 -
記憶體轉儲檔案
記憶體轉儲是用於系統崩潰時,將記憶體中的數據轉儲保存在轉儲檔案中,供給有關人員進行排錯分析用途。而它所保存生成的檔案就叫做記憶體轉儲檔案。
概念 性質 虛擬記憶體 參見 -
CPU內部的記憶體控制器
當cache hit不可預測的時候),並且沒有有效地利用頻寬。典型的這類... execution)這樣的CPU特性,也會受記憶體延遲的限制。這樣CPU必... cache還是主記憶體系統)。當前低段系統的記憶體延遲大約是...
電腦知識 特性