類載入:一句話形容就是在類第一次使用時載入到**段,直到程式結束時才釋放。
oc中的記憶體分布
從下往上依次是:
**段:存放**
資料段:已初始化全域性變數和靜態變數
bss段:未初始化的全域性變數和靜態變數
堆區:new malloc 等分配的空間
棧區:區域性變數
假設在main函式中宣告
假設person擁有nsstring *name 和 方法add
person *p1 = [person new]
首先p1是乙個區域性變數 ,存放在棧區,同時p1是乙個指標,指向物件p1的位址(此物件存放在堆區)
那麼在堆區包含哪些內容呢?
堆區存放類類所擁有的變數,在這也就是*name,還有乙個isa指標
isa指標指向什麼呢? 函式不放在堆區那又放在哪呢?
isa指向person類在**段中的位置,函式也就放在**段
下面看一張圖
程式的記憶體分布
32位的系統中,記憶體空間擁有4gb 2的32次方 的定址能力。大多數的作業系統都會將記憶體空間 中的一部分挪給核心使用,應用程式無法直接訪問這一段記憶體。windows預設情況會將高位址的2gb空間分給核心,而linux缺省會將高位址的1gb空間分配給核心,剩下的空間被稱為記憶體空間。一般來說,應...
作業系統中程式的記憶體結構說明
乙個程式在記憶體上由bss段 data段 text段三個組成的。在沒有調入記憶體前,可執行程式分為 段 資料區和未初始化資料區三部分。bss段 bss segment 通常是指用來存放程式中未初始化的全域性變數的一塊記憶體區域。bss是英文block started by symbol的簡稱。bss...
OC類的分類和類的載入過程
1.分類的使用 在開發過程中,如需要給某個類新增一些方法而不改變原來類,可以通過分類來實現,利用分類可以給原有類新增一些後來需要的一些功能,也可以達到共同開發乙個類,實現專案合作。分類的作用 再不改變原來類的基礎上,可以為類增加一些方法,原來類可以是系統自帶的類 分類的命名規則 可以隨便命名,一般分...