自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iOS 程序員面試要注意的問(wèn)題

移動(dòng)開(kāi)發(fā) iOS
當(dāng)您向一個(gè)對(duì)象發(fā)送一個(gè)autorelease消息時(shí),Cocoa就會(huì)將該對(duì)象的一個(gè)引用放入到最新的自動(dòng)釋放池。它仍然是個(gè)正當(dāng)?shù)膶?duì)象,因此自動(dòng)釋放 池定義的作用域內(nèi)的其它對(duì)象可以向它發(fā)送消息。當(dāng)程序執(zhí)行到作用域結(jié)束的位置時(shí),自動(dòng)釋放池就會(huì)被釋放,池中的所有對(duì)象也就被釋放。

[[121698]]

1、自動(dòng)釋放池是什么,如何工作?

當(dāng)您向一個(gè)對(duì)象發(fā)送一個(gè)autorelease消息時(shí),Cocoa就會(huì)將該對(duì)象的一個(gè)引用放入到***的自動(dòng)釋放池。它仍然是個(gè)正當(dāng)?shù)膶?duì)象,因此自動(dòng)釋放 池定義的作用域內(nèi)的其它對(duì)象可以向它發(fā)送消息。當(dāng)程序執(zhí)行到作用域結(jié)束的位置時(shí),自動(dòng)釋放池就會(huì)被釋放,池中的所有對(duì)象也就被釋放。 

 2、說(shuō)一說(shuō)static 關(guān)鍵字

(1)函數(shù)體內(nèi) static 變量的作用范圍為該函數(shù)體,不同于 auto 變量,該變量的內(nèi)存只被分配一次, 

因此其值在下次調(diào)用時(shí)仍維持上次的值; 

(2)在模塊內(nèi)的 static 全局變量可以被模塊內(nèi)所用函數(shù)訪問(wèn),但不能被模塊外其它函數(shù)訪問(wèn); 

(3)在模塊內(nèi)的 static 函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用,這個(gè)函數(shù)的使用范圍被限制在聲明 

它的模塊內(nèi); 

(4)在類中的 static 成員變量屬于整個(gè)類所擁有,對(duì)類的所有對(duì)象只有一份拷貝; 

(5)在類中的 static 成員函數(shù)屬于整個(gè)類所擁有,這個(gè)函數(shù)不接收 this 指針,因而只能訪問(wèn)類的static 成員變量。  

 3、什么事單件實(shí)例

Foundation 和 Application Kit 框架中的一些類只允許創(chuàng)建單件對(duì)象,即這些類在當(dāng)前進(jìn)程中的唯一實(shí)例。舉例來(lái)說(shuō),NSFileManager 和NSWorkspace 類在使用時(shí)都是基于進(jìn)程進(jìn)行單件對(duì)象的實(shí)例化。當(dāng)向這些類請(qǐng)求實(shí)例的時(shí)候,它們會(huì)向您傳遞單一實(shí)例的一個(gè)引用,如果該實(shí)例還不存在,則首先進(jìn)行實(shí)例的分配 和初始化。單件對(duì)象充當(dāng)控制中心的角色,負(fù)責(zé)指引或協(xié)調(diào)類的各種服務(wù)。如果類在概念上只有一個(gè)實(shí)例(比如 

NSWorkspace),就應(yīng)該產(chǎn)生一個(gè)單件實(shí)例,而不是多個(gè)實(shí)例;如果將來(lái)某一天可能有多個(gè)實(shí)例,您可 

以使用單件實(shí)例機(jī)制,而不是工廠方法或函數(shù)。

 4、說(shuō)說(shuō)Objective-C,有哪些優(yōu)點(diǎn)哪些不足

objc優(yōu)點(diǎn): 

1) Cateogies 

2) Posing 

3) 動(dòng)態(tài)識(shí)別 

4) 指標(biāo)計(jì)算 

5)彈性訊息傳遞 

6) 不是一個(gè)過(guò)度復(fù)雜的 C 衍生語(yǔ)言 

7) Objective-C 與 C++ 可混合編程 

不足: 

1) 不支援命名空間 

2)  不支持運(yùn)算符重載 

3)不支持多重繼承 

4)使用動(dòng)態(tài)運(yùn)行時(shí)類型,所有的方法都是函數(shù)調(diào)用,所以很多編譯時(shí)優(yōu)化方法都用不到。(如內(nèi)聯(lián)函數(shù)等),性能低劣。 

5、#import和#include的區(qū)別,@class代表什么?

@class一般用于頭文件中需要聲明該類的某個(gè)實(shí)例變量的時(shí)候用到,在m文件中還是需要使用#import

而#import比起#include的好處就是不會(huì)引起重復(fù)包含

 6、線程和進(jìn)程的區(qū)別?

進(jìn)程和線程都是由操作系統(tǒng)所體會(huì)的程序運(yùn)行的基本單元,系統(tǒng)利用該基本單元實(shí)現(xiàn)系統(tǒng)對(duì)應(yīng)用的并發(fā)性。

進(jìn)程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式。進(jìn)程有獨(dú)立的地址空間,一個(gè)進(jìn)程崩潰后,在保護(hù)模式下不會(huì)對(duì)其它進(jìn)程產(chǎn)生影響,而線程只是一個(gè) 進(jìn)程中的不同執(zhí)行路徑。線程有自己的堆棧和局部變量,但線程之間沒(méi)有單獨(dú)的地址空間,一個(gè)線程死掉就等于整個(gè)進(jìn)程死掉,所以多進(jìn)程的程序要比多線程的程序 健壯,但在進(jìn)程切換時(shí),耗費(fèi)資源較大,效率要差一些。但對(duì)于一些要求同時(shí)進(jìn)行并且又要共享某些變量的并發(fā)操作,只能用線程,不能用進(jìn)程。

7、Object-C的內(nèi)存管理?

1.當(dāng)你使用new,alloc和copy方法創(chuàng)建一個(gè)對(duì)象時(shí),該對(duì)象的保留計(jì)數(shù)器值為1.當(dāng)你不再使用該對(duì)象時(shí),你要負(fù)責(zé)向該對(duì)象發(fā)送一條release或autorelease消息.這樣,該對(duì)象將在使用壽命結(jié)束時(shí)被銷毀.

2.當(dāng)你通過(guò)任何其他方法獲得一個(gè)對(duì)象時(shí),則假設(shè)該對(duì)象的保留計(jì)數(shù)器值為1,而且已經(jīng)被設(shè)置為自動(dòng)釋放,你不需要執(zhí)行任何操作來(lái)確保該對(duì)象被清理.如果你打算在一段時(shí)間內(nèi)擁有該對(duì)象,則需要保留它并確保在操作完成時(shí)釋放它.

3.如果你保留了某個(gè)對(duì)象,你需要(最終)釋放或自動(dòng)釋放該對(duì)象.必須保持retain方法和release方法的使用次數(shù)相等.

8、屬性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那種情況下用?

readwrite 是可讀可寫(xiě)特性;需要生成getter方法和setter方法時(shí)

readonly 是只讀特性  只會(huì)生成getter方法 不會(huì)生成setter方法 ;不希望屬性在類外改變

assign 是賦值特性,setter方法將傳入?yún)?shù)賦值給實(shí)例變量;僅設(shè)置變量時(shí);

retain 表示持有特性,setter方法將傳入?yún)?shù)先保留,再賦值,傳入?yún)?shù)的retaincount會(huì)+1;

copy 表示賦值特性,setter方法將傳入對(duì)象復(fù)制一份;需要完全一份新的變量時(shí)。

nonatomic 非原子操作,決定編譯器生成的setter getter是否是原子操作,atomic表示多線程安全,一般使用nonatomic

責(zé)任編輯:閆佳明 來(lái)源: itjhwd
相關(guān)推薦

2018-05-23 15:13:50

程序員面試格式

2009-06-22 13:46:00

java程序員考試

2013-05-03 11:31:40

程序員

2016-04-19 10:23:48

2015-07-28 10:30:57

程序員接私單

2013-01-10 09:22:58

程序員面試程序員面試經(jīng)歷

2015-12-24 10:28:37

程序員面試技巧

2016-04-28 11:17:33

互動(dòng)出版網(wǎng)

2015-08-19 09:10:37

程序員面試

2015-08-04 10:07:08

程序員面試問(wèn)題

2015-08-19 08:51:38

程序員面試糟糕

2018-04-02 14:42:20

面試程序員簡(jiǎn)歷

2013-02-19 10:12:59

2013-08-20 09:33:59

程序員

2013-05-14 09:44:41

程序員面試

2015-03-30 15:51:29

程序員程序員面試

2018-03-22 15:36:26

程序員RubyiOS

2018-08-02 17:00:15

Vue.js學(xué)習(xí)iOS開(kāi)發(fā)

2022-03-21 15:30:27

面試程序員算法

2011-06-03 09:58:03

結(jié)對(duì)編程程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)