IOS底層原理-內(nèi)存五大區(qū)域

借用月月的圖.png

介紹內(nèi)存的五大區(qū)域:棧區(qū),堆區(qū),靜態(tài)區(qū),常量區(qū),代碼段

棧區(qū)

  • 局部變量和方法實(shí)參

棧區(qū)特點(diǎn):

  • 存儲空間有限 . iphone的棧區(qū)大小只有512k(默認(rèn)) ,非常有限
  • 連續(xù)性步鉴,棧區(qū)的地址是連續(xù)的
  • 地址分配從大到小. 棧區(qū)地址按照分配的順序,由大到小順序排列
  • 訪問速度快.
  • 系統(tǒng)管理. (棧區(qū)的內(nèi)存由系統(tǒng)管理)

棧的概念: 后進(jìn)先出/ 先進(jìn)后出

調(diào)用方法時棧區(qū)的工作原理

  • 開啟棧幀
  • 保存實(shí)參
  • 保存局部變量
  • 方法完成后彈棧,銷毀棧幀氛琢,釋放空間

堆區(qū)

  • OC中使用new方法創(chuàng)建的對象,被創(chuàng)建對象的所有成員變量保存在堆區(qū)中
  • 程序員手動申請空間

堆區(qū)特點(diǎn):

  • 所有程序共享
  • 存儲大數(shù)據(jù)
  • 程序員管理: 堆區(qū)的內(nèi)存需要程序員管理
  • 不連續(xù): 堆區(qū)的地址是不連續(xù)的
  • 速度沒有棧區(qū)快: 堆區(qū)的訪問速度沒有棧區(qū)快,因?yàn)槲覀円L問堆區(qū)中創(chuàng)建對象的屬性, 必須先需要通過變量找到棧區(qū)的地址,再通過地址定位到到堆區(qū)中的某一個位置, 只有找個這個位置之后,我們才可以訪問到存儲到這個對象中屬性對應(yīng)的數(shù)值.由于有了 這個地址尋找的過程,所有速度沒有棧區(qū)的快.

靜態(tài)區(qū)

  • 也叫BSS段
  • 未被初始化的全局變量和靜態(tài)變量
  • 全局變量和靜態(tài)變量,不管有沒有被初始化,都存放在BSS段中

常量區(qū)

  • 也叫數(shù)據(jù)段
  • 存儲已經(jīng)初始化的全局變量,靜態(tài)變量,常量
  • 存儲常量

代碼段

  • 代碼的二進(jìn)制文件(用來存儲程序的代碼/命令)

面試題目:分配和釋放
棧區(qū) (stack [st?k]): 由編譯器自動分配釋放

  • 局部變量是保存在棧區(qū)的
  • 方法調(diào)用的實(shí)參也是保存在棧區(qū)的
    堆區(qū) (heap [hi?p]): 由程序員分配釋放喊递,若程序員不釋放,會出現(xiàn)內(nèi)存泄漏
  • 賦值語句右側(cè) 使用 new 方法創(chuàng)建的對象
  • 被創(chuàng)建對象的所有 成員變量
    BSS 段 : 程序結(jié)束后由系統(tǒng)釋放
    數(shù)據(jù)段 : 程序結(jié)束后由系統(tǒng)釋放
    代碼段:程序結(jié)束后由系統(tǒng)釋放
  • 程序 編譯鏈接 后的二進(jìn)制可執(zhí)行代碼
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阳似,一起剝皮案震驚了整個濱河市骚勘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌障般,老刑警劉巖调鲸,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異挽荡,居然都是意外死亡藐石,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門定拟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來于微,“玉大人,你說我怎么就攤上這事青自≈暌溃” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵延窜,是天一觀的道長恋腕。 經(jīng)常有香客問我,道長逆瑞,這世上最難降的妖魔是什么荠藤? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮获高,結(jié)果婚禮上哈肖,老公的妹妹穿的比我還像新娘。我一直安慰自己念秧,他們只是感情好淤井,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著摊趾,像睡著了一般币狠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上砾层,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天总寻,我揣著相機(jī)與錄音,去河邊找鬼梢为。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的铸董。 我是一名探鬼主播祟印,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼粟害!你這毒婦竟也來了蕴忆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤悲幅,失蹤者是張志新(化名)和其女友劉穎套鹅,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汰具,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卓鹿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了留荔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吟孙。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖聚蝶,靈堂內(nèi)的尸體忽然破棺而出杰妓,到底是詐尸還是另有隱情,我是刑警寧澤碘勉,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布巷挥,位于F島的核電站,受9級特大地震影響验靡,放射性物質(zhì)發(fā)生泄漏倍宾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一晴叨、第九天 我趴在偏房一處隱蔽的房頂上張望凿宾。 院中可真熱鬧,春花似錦兼蕊、人聲如沸初厚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽产禾。三九已至,卻和暖如春牵啦,著一層夾襖步出監(jiān)牢的瞬間亚情,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工哈雏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留楞件,地道東北人衫生。 一個月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像土浸,于是被迫代替她去往敵國和親罪针。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 在iOS中黄伊,內(nèi)存主要分為棧區(qū)泪酱、堆區(qū)、全局區(qū)还最、常量區(qū)墓阀、代碼區(qū)五大區(qū)域。如下圖所示 棧區(qū)(Stack) 定義 棧是系統(tǒng)...
    源本平凡閱讀 927評論 0 4
  • iOS 底層原理 文章匯總[http://www.reibang.com/p/412b20d9a0f6] 在iO...
    Style_月月閱讀 4,484評論 9 20
  • 3.1 OC特性之 內(nèi)存五大區(qū)域 此篇為針對Objective-c語言入門的基礎(chǔ)知識,為了能讓大家更清楚的理解,此...
    阿新_會飛的猴子閱讀 1,763評論 3 10
  • 總述 在iOS中拓轻,內(nèi)存主要分為棧區(qū)斯撮、堆區(qū)、全局區(qū)悦即、常量區(qū)吮成、代碼區(qū)五大區(qū)域。如下圖所示: 下面分別介紹這五大區(qū) 棧區(qū)...
    含笑州閱讀 498評論 0 2
  • 久違的晴天辜梳,家長會粱甫。 家長大會開好到教室時,離放學(xué)已經(jīng)沒多少時間了作瞄。班主任說已經(jīng)安排了三個家長分享經(jīng)驗(yàn)茶宵。 放學(xué)鈴聲...
    飄雪兒5閱讀 7,523評論 16 22