物件的記憶體

2021-06-06 20:30:59 字數 501 閱讀 3575

當**傳送訊息alloc 給類時,ios平台會在記憶體中分配記憶體塊。該記憶體塊包含了此類宣告的屬性的記憶體。

下面讓我們看個例子:

下面**宣告了乙個car類。定義了三個屬性 year,make,model。

#import

@inte***ce car : nsobject

@end

下面**建立了car 類和nsobject類的例項

int main (int argc, const char * argv)

執行結果如下:

mycar是乙個指標。它的所佔的記憶體大小8b。

*mycar 是取得mycar指標指向的物件(car類建立的例項),例項佔的記憶體大小是:32b,是由乙個可佔記憶體大小8b的int型別 year屬性,和兩個佔記憶體大小8b的指標型別的make,model屬性,和乙個佔記憶體大小為8b的繼承於nsobject的字段組成的。

物件的記憶體布局

在hotspot虛擬機器中,物件在堆記憶體中的儲存布局可以劃分為三個部分 物件頭header 例項資料instance data和對齊填充padding hotspot虛擬機器的物件頭 有兩類資訊 物件自身的執行時資料 型別指標 mark word被設計成有著動態定義的資料結構,以便在極小的空間內儲...

物件的記憶體解析

一 棧 stack 是指虛擬機器棧。虛擬機器棧用於儲存區域性變數等。區域性變數表存放了編譯期可知長度的各種基本資料型別 boolean byte char short int float long double 物件引用 reference型別,它不等同於物件本身,是物件在堆記憶體的首位址 方法執行...

記憶體物件筆記

原文 c 將記憶體劃分為三個邏輯區域 堆 棧和靜態儲存區。位於它們之中的物件分別為堆物件,棧物件以及靜態物件。棧 棧,一般用於存放區域性變數或物件。它的生命期是從定義點開始,當所在函式返回時,生命結束。幾乎所 有的臨時物件都是棧物件。棧物件是在適當的時候建立,然後在適當的時候自動釋放 第一,在其生命...