iOS 堆和棧的區別

OC對象存放于堆里面(堆內存要程序員手動回收)

非OC對象一般放在棧里面(棧內存會被系統自動回收)

堆里面的內存是動態分配的,所以也就需要程序員手動的去添加內存、回收內存

按管理方式分

對于棧來講,是由系統編譯器自動管理,不需要程序員手動管理

對于堆來講,釋放工作由程序員手動管理,不及時回收容易產生內存泄露

按分配方式分

堆是動態分配和回收內存的,沒有靜態分配的堆

棧有兩種分配方式:靜態分配和動態分配

靜態分配是系統編譯器完成的,比如局部變量的分配

動態分配是有alloc函數進行分配的,但是棧的動態分配和堆是不同的,它的動態分配也由系統編譯器進行釋放,不需要程序員手動管理

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容