ARC 是Automatic Reference Counting的簡(jiǎn)稱压真,我們稱之為自動(dòng)引用計(jì)數(shù)娩嚼,是IOS5之后推出的內(nèi)存管理的新特性,本質(zhì)上還是使用引用計(jì)數(shù)來管理對(duì)象滴肿,只是在編寫代碼時(shí)岳悟,不需要向?qū)ο蟀l(fā)送release或者autorelease方法,也不需要調(diào)用dealloc方法泼差,編譯器會(huì)在合適的位置自動(dòng)給用戶生成release消息贵少,GC的全稱是Garbage collection,內(nèi)存垃圾回收機(jī)制,ARC比GC性能好堆缘。
iOS中是否支持垃圾回收機(jī)制
iOS開發(fā)只支持手動(dòng)內(nèi)存管理與ARC滔灶,Mac開發(fā)支持GC垃圾回收機(jī)制,10.8之后棄用了GC吼肥,推薦使用ARC
內(nèi)存中的堆區(qū)和棧區(qū)的差別
棧區(qū)有編譯器自動(dòng)分配釋放录平,存放方法的參數(shù)值麻车,局部變量的值等,堆區(qū)一般有程序員分配與釋放斗这,若不釋放动猬,則內(nèi)存溢出
strong與weak,_unsafe_unretained與weak的區(qū)別
1.strong是強(qiáng)引用表箭,weak是弱引用赁咙,在ARC中,使用strong告訴編譯器幫助我們自動(dòng)插入retain燃逻,weak是普通賦值相當(dāng)于手動(dòng)管理內(nèi)存的assign. ? ?2._unsafe_unretained與weak功能一致序目,區(qū)別在于當(dāng)之下你給的對(duì)象銷毀后,weak會(huì)將變量置為nil伯襟,防止調(diào)用野指針
ARC存在內(nèi)存泄漏嗎
ARC中如果內(nèi)存管理不當(dāng)?shù)脑捲痴牵瑯訒?huì)存在內(nèi)存泄漏,列入:ARC中也會(huì)循環(huán)引用導(dǎo)致內(nèi)存泄漏姆怪,OC對(duì)象與CoreFoundation類之間橋接時(shí)叛赚,管理不當(dāng)也會(huì)產(chǎn)生內(nèi)存泄漏
自動(dòng)釋放池是什么:如何而工作?
自動(dòng)釋放池是NSAutorelease類的一個(gè)實(shí)例稽揭,當(dāng)向一個(gè)對(duì)象發(fā)送autorelease消息時(shí)俺附,該對(duì)象會(huì)自動(dòng)入池,等待池銷毀時(shí)溪掀,將會(huì)向池中的所有對(duì)象發(fā)送一條release消息事镣,釋放對(duì)象
為什么delegate屬性都是assign而不是retain
防止循環(huán)引用,以至于對(duì)象無法得到正確的釋放
iOS開發(fā)中數(shù)據(jù)持久性揪胃,有哪幾種璃哟?
plist文件寫入,對(duì)象歸檔喊递,sqlite數(shù)據(jù)庫随闪,coredata
什么是KVC和KVO?以及他們之間的關(guān)系是什么
1.KVC是一種簡(jiǎn)單訪問對(duì)象實(shí)例變量的機(jī)制骚勘,該機(jī)制可以不通過存取方法就可以訪問對(duì)象的實(shí)例變量?2.KVO是一種能使得對(duì)象獲取到其他對(duì)象屬性變化的通知機(jī)制铐伴。 ? ? ? ? ? ? 3.實(shí)現(xiàn)KVO鍵值觀察模式,被觀察的對(duì)象必須使用KVC鍵值編碼來修改它的實(shí)例變量俏讹,這樣才能被觀察者觀察到当宴,因此KVC是KVO的基礎(chǔ)或者來說KVO的實(shí)現(xiàn)是建立在KVC的基礎(chǔ)之上的
簡(jiǎn)書常見的設(shè)計(jì)模式:?jiǎn)卫碓蠼^察者即供,工廠
內(nèi)存管理在dealloc方法中,用release方法好還是用self.xxx=nil好于微,
使用self.xxx好逗嫡,因?yàn)橄日{(diào)用了release方法青自,而且還將變量設(shè)置為nil,這樣就更安全的釋放對(duì)象驱证,防止野指針調(diào)用
線程與進(jìn)程的區(qū)別和聯(lián)系
一般的應(yīng)用程序是單個(gè)進(jìn)程延窜,也有多進(jìn)程,進(jìn)程是個(gè)靜態(tài)的容器抹锄,里面容乃了很多歌線程逆瑞,線程是一系列方法的線性執(zhí)行路徑
什么是TCP鏈接的三次握手
1.客戶端發(fā)送syn包到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài)伙单,等待服務(wù)器確認(rèn) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.服務(wù)器收到syn包获高,必須確認(rèn)客戶的SYN,同時(shí)發(fā)送一個(gè)SYN包吻育,客戶端收到服務(wù)器的SYN+ACK包念秧,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?3.客戶端收到服務(wù)器的SYN+ACK包痹栖,向服務(wù)器發(fā)送確認(rèn)包ACK绣硝,此包發(fā)送完畢瓦胎,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài)徐鹤,完成三次握手