棧里面存放非對象的基本數(shù)據(jù)類型
堆中存放對象數(shù)據(jù)類型
棧中的內(nèi)存會被系統(tǒng)回收,堆中內(nèi)存需要手動釋放
堆是動態(tài)分配间雀,沒有靜態(tài)分配的堆
棧分動態(tài)分配和靜態(tài)分配
靜態(tài)分配如局部變量
動態(tài)分配類似于alloc
為了訪問堆(heap)中的數(shù)據(jù)催什,至少要有一個保存在stack中的指針
Stack是低位擴展涵亏,一般不超過1MB,越用越少
Heap是高位擴展蒲凶,內(nèi)存取決于虛擬內(nèi)存气筋,越用內(nèi)存越大
Stack是哪個創(chuàng)建的就是哪個的,沒有引用計數(shù)器概念旋圆,如局部變量
Heap對象才會采用引用計數(shù)方式管理
當(dāng)棧的剩余空間小于申請的空間就會發(fā)生棧溢出宠默,隊列
Heap是鏈表存儲
****************************
類似于nsstring,nsarray 的不可變對象都是存入棧中的灵巧,即申請空間固定
nsmutablestring之類的是可變對象搀矫,是存放在堆的
****************************
個人理解:在函數(shù)中alloc一個對象抹沪,那么該對象的引用在棧中,內(nèi)存在堆中