計算機使用記憶體來容納要執行的程式以及這些程式使用的資料。
作業系統和「執行時」通常將用於容納資料的記憶體劃分為兩個獨立的區域,每個區域都一不同的方式管理,這兩個區域通常稱為棧和堆。棧和堆的設計目標完全不同。
呼叫方法時,它的引數和區域性變數所需的記憶體總是從棧中獲取。方法結束後,要不正常返回,要不就丟擲異常,所以為引數和區域性變數分配的記憶體將自動歸還給棧,並可在另乙個方法呼叫時重新使用。棧上的方法引數和區域性變數都具有良好的定義的生存期,方法開始時進入生存期,方法結束時結束生存期。
使用new關鍵字建立物件時,構造物件所需要的記憶體總是從堆中獲取,使用引用變數,可以從多個地方引用同乙個物件。使用new關鍵字將建立物件,但只有在刪除了最後乙個物件應用之後的某個不確定時刻,它才會消失。
棧(stack)記憶體就像一系列堆得越來越高的箱子,呼叫方法時,它的每個引數都是被放入乙個箱子,並將這個箱子放到棧的頂部。每個區域性變數也同樣分配到乙個箱子,並同樣放到棧頂。
堆(heap)記憶體則像散布在房間裡的一大堆箱子。
計算機記憶體
1.1 計算機硬體記憶體架構。計算機cpu central processing unit 和記憶體的互動是最頻繁的,記憶體是我們的快取記憶體區。使用者磁碟和cpu的互動,而cpu運轉速度越來越快,磁碟遠遠跟不上cpu的讀寫速度,才設計了記憶體,使用者快取使用者io等待導致cpu的等待成本。但是隨著...
計算機記憶體定址
摘自 1 基本概念 cpu段式管理 段式管理的基本原理是指把乙個程式分成若干個段 segment 進行儲存,每個段都是乙個邏輯實體 logical entity 乙個使用者作業或程序所包含的段對應乙個二維線形虛擬空間,程式通過分段 segmentation 劃分為多個模組,故可以對程式的各個模組分別...
計算機記憶體管理
在計算機中,儲存區域主要分為 他們的執行速率自下而上加快,與之相應的造價越高。其中,硬碟的執行效率最慢,暫存器的效率最快。在c 中,記憶體主要分為五個區,分別是 區是用來儲存程式的所有 以及字串常量等在編譯期間就能確定的值,在程式的整個生命週期內,在常量資料區的資料都是可用的。在這個區域內,所有的資...