iOS面試基礎知識點(一) 內(nèi)存相關

什么是ARC?

ARC即Automatic Reference Counting,它是現(xiàn)有的Objective-C的內(nèi)存管理機制蒸健。該機制下,代碼中會自動添加retain/release蛋济,原本需要手動處理引用計數(shù)的代碼交由編譯器自動完成旨袒。

什么是MRC察绷?

MRC即Manual Reference Counting干签,手動通過retain為對象獲取內(nèi)存,并用release釋放內(nèi)存拆撼。

ARC與Garbage Collection的區(qū)別筒严?

Garbage Collection在運行時管理內(nèi)存丹泉,可以解決retain cycle,而ARC在編譯時管理內(nèi)存鸭蛙。

循環(huán)引用摹恨?

循環(huán)引用是指兩個或兩個以上對象相互之間互相強引用,導致所有對象無法被釋放的現(xiàn)象娶视。是內(nèi)存泄漏的一種情況晒哄。實際使用中,最為常見的是block的應用肪获。

關鍵詞寝凌,引用類型?

strong:表示指向并擁有該對象孝赫。其修飾的對象的引用計數(shù)會+1.該對象只要引用計數(shù)不為0较木,就不會被銷毀∏啾可以通過強行設為nil進行銷毀伐债。

weak:表示指向但不擁有該對象。其修飾的對象引用計數(shù)不會增加致开,會自行在內(nèi)存中被銷毀峰锁。使用較多的是定義一個代理。

assign:主要用于修飾基本數(shù)據(jù)類型双戳,如int虹蒋、float,這些值主要存在于棧中飒货。

copy:與strong類似魄衅。不同的是strong的復制是多個指針指向同一個地址,而copy的復制會在內(nèi)存中復制一份對象塘辅,指針是指向不同的地址晃虫。copy一般用在修飾有對應可變類型的不可變對象上,類似NSString

weak一般用于修飾對象莫辨,assign一般用來修飾基礎數(shù)據(jù)類型。原因就是assign修飾的對象被釋放后毅访,指針的地址依然存在沮榜,造成“野指針”,在堆上容易造成奔潰喻粹。而棧上的內(nèi)存系統(tǒng)會自動釋放蟆融,不會造成“野指針”。

在Objective-C中守呜,基本數(shù)據(jù)類型默認的關鍵字是atomic型酥,readwrite和assign山憨;普通屬性的默認關鍵字是atomic,readwrite和strong弥喉。

atomatic和nonatomic的比較郁竟?

atomatic修飾的對象能保證setter和getter的完整性,任何線程訪問它都可以得到一個完整的初始化的對象由境。但因為要保證操作的完成棚亩,所以速度較慢。比nonatomic安全虏杰,但也不是絕對的線程安全讥蟆。

nonatomic修飾的對象不保證setter、getter的完整性纺阔,所以瘸彤,當多個線程訪問它的時候,他可能會返回一個未初始化的對象笛钝。所以质况,相較atomatic而言,速度更快婆翔,線程也是不安全的拯杠。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市啃奴,隨后出現(xiàn)的幾起案子潭陪,更是在濱河造成了極大的恐慌,老刑警劉巖最蕾,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件依溯,死亡現(xiàn)場離奇詭異,居然都是意外死亡瘟则,警方通過查閱死者的電腦和手機黎炉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來醋拧,“玉大人慷嗜,你說我怎么就攤上這事〉ず荆” “怎么了庆械?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長菌赖。 經(jīng)常有香客問我缭乘,道長,這世上最難降的妖魔是什么琉用? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任堕绩,我火速辦了婚禮策幼,結果婚禮上,老公的妹妹穿的比我還像新娘奴紧。我一直安慰自己特姐,他們只是感情好,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布绰寞。 她就那樣靜靜地躺著到逊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪滤钱。 梳的紋絲不亂的頭發(fā)上觉壶,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機與錄音件缸,去河邊找鬼铜靶。 笑死,一個胖子當著我的面吹牛他炊,可吹牛的內(nèi)容都是我干的争剿。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼痊末,長吁一口氣:“原來是場噩夢啊……” “哼蚕苇!你這毒婦竟也來了?” 一聲冷哼從身側響起凿叠,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤涩笤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后盒件,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蹬碧,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年炒刁,在試婚紗的時候發(fā)現(xiàn)自己被綠了恩沽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡翔始,死狀恐怖罗心,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情城瞎,我是刑警寧澤渤闷,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站全谤,受9級特大地震影響肤晓,放射性物質(zhì)發(fā)生泄漏爷贫。R本人自食惡果不足惜认然,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一补憾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卷员,春花似錦盈匾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至未巫,卻和暖如春窿撬,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背叙凡。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工劈伴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人握爷。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓跛璧,卻偏偏與公主長得像,于是被迫代替她去往敵國和親新啼。 傳聞我的和親對象是個殘疾皇子追城,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,093評論 1 32
  • Cocoa內(nèi)存管理機制 (1)當你使用new、alloc燥撞、copy方法創(chuàng)建一個對象時座柱,該對象的保留計數(shù)器值為1.當...
    John_LS閱讀 2,767評論 0 6
  • 內(nèi)存管理的基本范圍和概念. 程序運行過程中藥創(chuàng)建大量的對象, 和其他高級語言類似,在ObjC中對象存儲在堆區(qū),程序...
    ValienZh閱讀 878評論 0 2
  • ①飯團 水蜜桃 青提 番茄 看視頻看到有人吃飯團,想到家里還剩了幾片之前買的海苔片叨吮,整起來整起來辆布! 雖然這個米飯被...
    愛吃紅薯的老鼠閱讀 237評論 0 1
  • 你殺了人,你有罪 存在主義? 社會現(xiàn)象? 司法公正? 十八的我不想從這些角度去挖掘茶鉴。 wh...
    Liquricee閱讀 419評論 0 2