iOS內(nèi)存管理
iOS內(nèi)存分為5個(gè)區(qū):棧區(qū)蔑水,堆區(qū),全局區(qū)宜雀,常量區(qū),代碼區(qū)
棧區(qū)stack:這一塊區(qū)域系統(tǒng)會(huì)自己管理晚岭,我們不用干預(yù),主要存一些局部變量勋功,以及函數(shù)跳轉(zhuǎn)時(shí)的現(xiàn)場(chǎng)保護(hù)坦报。因此大量的局部變量,深遞歸,函數(shù)循環(huán)調(diào)用都可能導(dǎo)致內(nèi)存耗盡而運(yùn)行崩潰狂鞋。
堆區(qū)heap:與棧區(qū)相對(duì)片择,這一塊一般由我們自己管理,比如alloc骚揍,free的操作字管,存儲(chǔ)一些自己創(chuàng)建的對(duì)象啰挪。
全局區(qū)(靜態(tài)區(qū)static):全局變量和靜態(tài)變量都存儲(chǔ)在這里,已經(jīng)初始化的和沒(méi)有初始化的會(huì)分開(kāi)存儲(chǔ)在相鄰的區(qū)域嘲叔,程序結(jié)束后系統(tǒng)會(huì)釋放
常量區(qū):存儲(chǔ)常量字符串和const長(zhǎng)量
代碼區(qū):存儲(chǔ)代碼