黑馬程式設計師 記憶體管理基礎知識

2021-06-22 18:18:20 字數 1762 閱讀 9548

----------------------

asp.net+unity開發、

.net培訓、期待與您交流! ----------------------

1.什麼是記憶體管理

管理範圍:任何繼承了nsobject的物件,對其他基本資料型別(int、char、float、double、struct、enum等)無效

int main()

//

大括號**塊自動消除棧空間變數。a,b,p

/*但是動態儲存的物件放在堆裡,沒有任何人使用它,沒有任何指標指向。但是仍然無法消除,所以要管理記憶體,管理的方式是呼叫方法。*/

return 0; }

2.物件的基本結構

每個oc物件都有自己的引用計數器,是乙個整數,表示「物件被引用的次數」,即有多少人正在使用這個oc物件.

每個oc物件內部專門有4個位元組的儲存空間來儲存引用計數器

3.引用計數器的作用

當使用alloc、new或者copy建立乙個新物件時,新物件的引用計數器預設就是1當乙個物件的引用計數器值為0時,物件占用的記憶體就會被系統**。換句話說,如果物件的計數器不為0,那麼在整個程式執行過程,它占用的記憶體就不可能被**,除非整個程式已經退出

4.引用計數器的操作

給物件傳送一條retain訊息,可以使引用計數器值+1(retain方法返回物件本身)給物件傳送一條release訊息,可以使引用計數器值-1。可以給物件傳送retaincount訊息獲得當前的引用計數器值

@inte***ce person : nsobject

@end

@implementation person

//當乙個person物件被**的時候,就會自動呼叫

這個方法。

- (void)dealloc

@end

/* 1.方法的基本使用

retain ,

計數器+1   返回物件本身

release

,計數器-1 沒有返回值

retaincount

: 獲取當前計數器的值

dealloc

*

當乙個物件要**的時候就會呼叫

*

一定要呼叫[super dealloc].而且放在最後面

2概念1.

野指標: 指向殭屍物件(不可用)的指標,給野指標傳送訊息會報錯。(exc_bad_access)

2

殭屍物件 :所占用記憶體以及被**的物件,殭屍物件不能再使用

3

空指標 : 沒有指向任何東西的指標(儲存的東西是nil null,0),給空指標傳送訊息不會報錯

3.retain

方法會返回物件本身

*/

int main()

----------------------

asp.net+unity開發、

.net培訓、期待與您交流! ----------------------詳細請檢視:

www.itheima.com

黑馬程式設計師 OC基礎 記憶體管理

oc的區域性變數在 塊結束時被系統銷毀,記憶體被 oc的物件,內部有引用計數器,當引用計數器的值為0時,被系統銷毀,記憶體被 區域性變數存放在棧中.物件存放在堆中.注意,物件指標還是存放在棧中,物件本身占用的記憶體存放在堆中.在oc中,我們要對自己寫的繼承了nsobject的物件進行記憶體管理.物件...

黑馬程式設計師C 基礎知識(2)

windows phone 7手機開發 net培訓 期待與您交流!在程式中解釋 段的作用說明。三種注釋符 一 單行注釋符 這裡是說明 從 開始到本行結束 二 多行注釋符 這裡是說明 以 開始以 結束 三 文件注釋 用於對類和方法進行注釋,在類和方法前面連續輸入 將自動生成 這裡表示類或方法的說明 u...

黑馬程式設計師 c 基礎知識梳理

asp.net unity開發 net培訓 期待與您交流!一 常用資料型別 1 整型 int 2 非整型 double,decimal 3 非數值型 char,string,bool 等。二 各型別命名規則 1 變數命名規則 必須以字母 或 符號開頭 後面可以跟任意字母 數字或下劃線 不要與系統中的...