記憶體管理之計數器的基本操作

2021-07-04 02:10:01 字數 1178 閱讀 7334

記憶體管理:

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

棧:中放區域性變數

堆:物件放在堆上

指標是區域性變數。

棧空間的東西是系統自動** 。作用域結束後,系統自動**棧空間。

堆空間的記憶體是動態儲存的,即使沒有指標指向它時也不會自動**。

每個oc物件都有乙個引用計數器。是乙個整數。表示物件唄引用的次數,當沒有人引用時,既引用計數器為0時,就被系統銷毀。

引用計數器佔4個位元組。當物件剛剛產生時引用計數器預設是1.

當使用alloc或者new或者copy建立新物件時,新物件的引用計數器預設就是1.

引用計數器的操作:

給物件傳送一條retain訊息,可以使引用計數器值+1(retain方法返回物件本身)

給物件傳送一條release訊息,可以使引用計數器—1,

可以給物件傳送retaincount訊息獲得當前的引用計數器。

當乙個物件被銷毀時,系統會自動向物件傳送一條dealloc訊息。

一般會重寫dealloc方法,在這裡釋放相關資源,dealloc就像物件的遺言。

#import

/*野指標:指向殭屍物件(不可用記憶體,此時已經**了物件)的指標

exc_bad_access:訪問了一塊壞的記憶體(已經被**)————野指標錯誤

方法的基本使用

1.retain:計數器+1,會返回物件本身

2.release:計數器-1,沒有返回值

3.retaincount:獲取當前的計數器數值

4.dealloc

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

*一定要呼叫[super dealloc],這句呼叫要放在最後面 概念

1.殭屍物件:所占用記憶體已經被**的物件,殭屍物件不能再使用

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

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

*/@inte***ce person :nsobject

@end

@implementationperson

-(void)dealloc

@end

int main()

iOS 基本記憶體管理 引用計數器

1.什麼是記憶體管理 系統會發出記憶體警告,這時得 一些不需要再使用的記憶體空間。比如 一些不需要使用的物件 變數等 管理範圍 任何繼承了nsobject的物件需要去管理記憶體,但是對於對其他基本資料型別 int char float double struct enum等 結構,列舉等不用去關心記...

引用計數器 與 記憶體管理

一 引用計數器的基本操作 1.方法的基本使用 1 retain 計數器 1,會返回物件本身 2 release 計數器 1,沒有返回值 3 retaincount 獲取當前的計數器的值 4 dealloc 當乙個person物件被 的時候,就會自動呼叫這個方法 void dealloc 2.概念 1...

Jmeter配置元件之計數器Counter

先說說利用jmeter生成資料的幾種方法 1 csv data set config 這個元件被用來在引數化生成資料時使用,簡單高效,容易生成有序數 只需要新建excel,然後通過拖拽 複製黏貼等方式產生不同的資料,然後讀取呼叫即可。但它也有不足之處,如下 如果資料庫中某些表的某些欄位不允許重複 比...