iOS 屬性學習筆記
一、記憶體相關
1、記憶體分割槽:
不需要程式設計師管理 基本資料型別(struct enum int double float char等)不需要 儲存在棧區
--------
棧區
--------
需要程式設計師管理 NSObject物件儲存堆區
--------
堆區
--------
自動載入記憶體空間 不需要程式設計師管理
-------
BSS段 沒有初始化的全域性變數 靜態變數
資料區
程式碼區
--------
全域性變數存在資料區和BSS段 記憶體 開機啟動比較慢
2. 野指標
記憶體管理內容
1)野指標: 1.定義的指標變數沒有初始化 2.指向的空間已經被釋放
2)記憶體洩露
Person *p = [Person new];
p在棧區
[Person new];堆區
如果棧區的p已經釋放,而堆區的空間還沒有釋放,堆區的空間洩露了
3.記憶體釋放後 設定物件為nil 可避免殭屍物件
二、記憶體管理
如何回收那些不需要再使用的物件?
那就得學會OC的記憶體管理
所謂記憶體管理, 就是對記憶體進行管理, 涉及的操作有:
分配記憶體 : 比如建立一個物件, 會增加記憶體佔用
清除記憶體 : 比如銷燬一個物件, 能減小記憶體佔用
記憶體管理的管理範圍
任何繼承了NSObject的物件 (所有的OC物件,物件型別)
對其他非物件型別(基本資料型別)無效(int、char、float、double、struct、enum等 )
只有OC物件才需要進行記憶體管理的本質原因
OC物件存放於堆裡面
非OC物件一般放在棧裡面(棧記憶體會被系統自動回收)
三、基本資料型別 VS 物件型別
1.為什麼基本資料型別可以放在“棧”中儲存?“物件型別”卻要放在堆中儲存?
基本資料型別:大小固定
物件資料型別:大小不固定
2.為什麼記憶體管理只管理“物件型別”?
程式碼執行完畢後,“堆記憶體”不會自動銷燬,而“棧”記憶體會自動彈棧(釋放)。
四、一些截圖
相關文章
- iOS類新增方法、屬性學習筆記iOS筆記
- iOS學習筆記1(結合專案)---oc的@property屬性iOS筆記
- Vue學習筆記(六):監視屬性Vue筆記
- JavaScript中的物件學習筆記(屬性操作)JavaScript物件筆記
- HTML5 學習筆記 表單屬性HTML筆記
- PHP 手冊 (類與物件) 學習筆記二:屬性PHP物件筆記
- Swift學習筆記第六篇(類,屬性,方法)Swift筆記
- iOS Block學習筆記iOSBloC筆記
- iOS Runloop學習筆記iOSOOP筆記
- flutter 學習筆記【flutter 構造方法 TextField 屬性說明】Flutter筆記構造方法
- angular學習筆記(四)- input元素的ng-model屬性Angular筆記
- 《從零開始學Swift》學習筆記(Day 44)——重寫屬性Swift筆記
- 《從零開始學Swift》學習筆記(Day 32)——計算屬性Swift筆記
- 《從零開始學Swift》學習筆記(Day 33)——屬性觀察者Swift筆記
- Vue學習筆記(二)------axios學習Vue筆記iOS
- Vue學習筆記 —— axiosVue筆記iOS
- Axios用法–學習筆記iOS筆記
- iOS runtime學習筆記iOS筆記
- iOS指標學習筆記iOS指標筆記
- (JavaScript學習記錄):jQuery 屬性操作JavaScriptjQuery
- vue學習筆記(一)---- vue指令( v-bind 屬性繫結 )Vue筆記
- iOS筆記--UIButton常用屬性和監聽方法iOS筆記UI
- IOS學習筆記(頁面傳值:屬性傳值,協議代理傳值,閉包傳值)iOS筆記協議
- .net框架筆記——屬性框架筆記
- iOS學習筆記02 UIScrollViewiOS筆記UIView
- iOS執行緒學習筆記iOS執行緒筆記
- iOS學習筆記-動畫篇1iOS筆記動畫
- iOS arc VS mrc學習筆記iOS筆記
- Object C學習筆記10-靜態方法和靜態屬性Object筆記
- React學習手記2-屬性校驗和預設屬性React
- Matlab_GUI學習筆記(三)——常用物件的屬性之FigureMatlabGUI筆記物件
- iOS學習筆記43 Swift(三)類iOS筆記Swift
- iOS學習筆記05 觸控事件iOS筆記事件
- 階段性總結_學習筆記筆記
- html學習(常用屬性)HTML
- iOS動畫 屬性屬性解析iOS動畫
- 《從零開始學Swift》學習筆記(Day 50)——擴充套件計算屬性、方法Swift筆記套件
- 《從零開始學Swift》學習筆記(Day 34)——靜態屬性是怎麼回事?Swift筆記