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.為什麼記憶體管理只管理“物件型別”?
程式碼執行完畢後,“堆記憶體”不會自動銷燬,而“棧”記憶體會自動彈棧(釋放)。
四、一些截圖
相關文章
- Vue學習筆記(六):監視屬性Vue筆記
- JavaScript中的物件學習筆記(屬性操作)JavaScript物件筆記
- C#學習筆記-欄位、屬性、索引器C#筆記索引
- iOS Block學習筆記iOSBloC筆記
- PHP 手冊 (類與物件) 學習筆記二:屬性PHP物件筆記
- iOS學習筆記02 UIScrollViewiOS筆記UIView
- flutter 學習筆記【flutter 構造方法 TextField 屬性說明】Flutter筆記構造方法
- (JavaScript學習記錄):jQuery 屬性操作JavaScriptjQuery
- vue學習筆記(一)---- vue指令( v-bind 屬性繫結 )Vue筆記
- Matlab_GUI學習筆記(三)——常用物件的屬性之FigureMatlabGUI筆記物件
- 線性基學習筆記筆記
- React學習手記2-屬性校驗和預設屬性React
- iOS學習筆記43 Swift(三)類iOS筆記Swift
- iOS學習筆記05 觸控事件iOS筆記事件
- iOS學習筆記39 ReactiveCocoa入門iOS筆記React
- 線性代數學習筆記(二)+貪心學習筆記(一)(2024.10.5)筆記
- Xamarin 學習筆記 - 配置環境(Windows & iOS)筆記WindowsiOS
- iOS學習筆記04 檢視切換iOS筆記
- iOS學習筆記14 網路(三)WebViewiOS筆記WebView
- iOS學習筆記06 手勢識別iOS筆記
- iOS學習筆記47 Swift(七)泛型iOS筆記Swift泛型
- iOS學習筆記18 CoreData你懂的iOS筆記
- iOS學習筆記--PresentedVC自定義彈窗iOS筆記
- CALayer學習--contentsCenter屬性
- 階段性總結_學習筆記筆記
- 學習筆記:vue為什麼不能監聽陣列屬性的變化筆記Vue陣列
- vue學習筆記(八)---- vue中的例項屬性(wacth和computed的使用)Vue筆記
- JavaScript學習筆記023-物件方法0包裝物件0靜態屬性JavaScript筆記物件
- CSS筆記——屬性選擇器CSS筆記
- iOS開發-屬性的記憶體管理iOS記憶體
- iOS學習筆記20 地圖(二)MapKit框架iOS筆記地圖APK框架
- iOS學習筆記01 APP啟動相關iOS筆記APP
- iOS學習筆記49 Swift(九)訪問控制iOS筆記Swift
- iOS學習筆記34 加速計和陀螺儀iOS筆記
- iOS學習筆記——基礎控制元件(上)iOS筆記控制元件
- 線性規劃對偶學習筆記筆記
- iOS UITableView 修改屬性iOSUIView
- 學習Rust:派生derive屬性Rust
- Vue筆記三——計算屬性(computed)Vue筆記