iOS程序員筆試題(持續更新)

? ? ? ? ? 程序員找工作,無非是兩大關,一是面試,二是筆試,關于面試的技巧,我的文章里已經分享過,大家可以看看~今天我給大家分享的是,公司經常出的,并且容易搞混的筆試題!如果這些知識都弄懂了,再加上臨場反應能力和一定的技術,我相信一定會拿到公司的邀請的!!

? ? ? ? ?其實IOS程序員的面試題,一般都是比較基礎的,一般不會出太難,太深入的問題,但是這些知識往往都容易忽略,而且自己基本上都是自己以前搞混的知識點!我總結了一下,希望對大家有用!!


1.OC與C的區別?

? 最重要的區別是:

? ?OC是面向對象 ? ? ? ? C是面向過程

面向過程 ?是流程化 每一步 都會影響到下一步的執行 甚至到程序是否成功執行完畢

面向對象 ?不受步驟的約束 在操作的時候? 如果沒有這個對象? 也不會受到嚴重影響

2.面向對象的三大特征是?

封裝 ? ? 繼承 ? ?多態

3.內存管理的原則

? 只要有alloc retain copy (retainCount +1)就要有對應的release(retainCount -1)

?誰分配 誰釋放

alloc 這個函數 相對對的函數

delloc 銷毀對象的時候調用

alloc 給對象分配內存的時候調用

autorelease 與release 的區別

release autorelease 都可以是對象的引用計數-1

release立即釋放

autorelease 延遲釋放

自動釋放池NSAutoreleasePool

實例代理:

? for (int i=0; i<10; i++) {

@autoreleasepool {

NSObject *obj = [[[NSObject alloc] init]autorelease];

}

}

4.繼承 category的區別

? 繼承 可以添加 變量

調用的時候 可以使用 子類的對象去調用 子類擁有父類的所有屬性 方法 包括category 協議。。。

category 只能添加 方法

調用的時候 使用原有類的對象去調用

5.OC里面有多繼承么?怎么實現多繼承呢

沒有多繼承 可以多級 繼承 ? ? 可以使用代理 ,分類來實現

6.category estensiton 區別

category 類目 在不改變原有類的情況下? 給他擴充方法

estensiton 延展 添加 不公開的 變量 屬性 方法

7.什么是protocol?

是協議 是一個 統一的對外接口 可以通過他來實現 查找多個類的方法

8.什么是代理

? 代理 又叫委托 自己不能完成的 委托給別人完成 ?可用于回調

9.代理 通知的區別?

代理 是一對一的 代理的接收者,需要把結果返回給發送者結果

通知 是一對多的 ?發送者,只需要把消息發送出去,不需要返回

10通知 KVO 的區別

KVO 是鍵值觀察者 通過觀察的屬性值 發生改變 去調用 觀察的方法

通知 通過通知名字 來發送 接收通知

11.KVO KVC的區別?

KVC 鍵值編碼 通過把屬性名 當成key 來改變屬性的值

KVO 鍵值觀察者 通過KVC的方式 把屬性當做key 來觀察屬性值的變化? 做出響應

在實際工作中 在哪用到了 KVC KVO

數據轉模型 用到了KVC

封裝下拉改變導航欄透明度的時候? 使用的是KVO

12.readwrite,readonly,assign,retain,copy,nonatomic 、strong、weak屬性的作用?并區別

strong(強引用)、 weak(弱引用)?什么情況使用copy,assign,和retain?

readwrite 是可讀可寫特性;需要生成getter方法和setter方法時

readonly 是只讀特性 只會生成getter方法

不希望屬性在類外改變

assign 直接賦值 基本數據類型

retain 表示持有(保留)特性 引用計數加1

copy 拷貝一份賦值 會生成一個不受上一個對象影響的對象

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

strong強引用->屬性所屬的對象被釋放的時候 這個屬性 才會被釋放 weak弱引用->不穩定的? 可能會被釋放掉

13.Objective-C有私有方法么?私有變量呢?如多沒有的話,有沒有什么代替的方法?

? ? ?objective-c類里面的方法只有兩種, 靜態方法和實例方法.但是可以通過把方法的聲明和定義都放在.m文件中來實現一個表 面上的私有方法。有私有變量,可以通過@private來修飾,或者把聲明放到.m文件中。在Objective‐C中,所有實例變 量默認都是私有的,所有實例方法默認都是公有的

14.c c++ 和obj-c如何混用?

1)obj-c的編譯器處理后綴為m的文件時,可以識別obj-c和c的代碼,處理mm文件可以識別obj-c,c,c++代碼,但cpp文件必須只

能用c/c++代碼,而且cpp文件include的頭文件中,也不能出現obj- c的代碼,因為cpp只是cpp。

2) 在mm文件中混用cpp直接使用即可,所以obj-c混cpp不是問題

3)在cpp中混用obj- c其實就是使用obj-c編寫的模塊是我們想要的。如果模塊以類實現,那么要按照cpp class的標準寫類的定 義,頭文件中不能出現obj-c的東西,包括#import cocoa的。 實現文件中,即類的實現代碼中可以使用obj-c的東西,可以import,只是后綴是mm。如果模塊以函數實現,那么頭文件要按 c的格 式聲明函數,實現文件中,c++函數內部可以用obj-c,但后綴還是mm或m。總結:只要cpp文件和cpp include的文件中不包含 obj-c的東西就可以用了,cpp混用obj-c的關鍵是使用接口,而不能直接使用實現代碼,實際上cpp混用的是obj-c編譯后的o文 件,這個東西其實是無差別的,所以可以用。obj-c的編譯器支持cpp。

15.objc優缺點?

objc優點:

1)Cateogies 2)Posing 3)動態識別 4)指標計算 5)彈性訊息傳遞

6)不是一個過度復雜的C衍生語言 7)Objective-C與C++可混合編程

缺點:

1)不支援命名空間 2)不支持運算符重載 3)不支持多重繼承 4)使用動態運行時類型,所有的方法都是函數調用,所以很多編譯時優化 方法都用不到。(如內聯函數等),性能低劣。

16.淺復制和深復制的區別?

淺層復制(copy):只復制指向對象的指針,而不復制引用對象本身。//通過對象的指針來訪問這個對象----只賦值地址 深層復制(mutableCopy):復制引用對象本身---再創建一個對象 意思就是有個A對象,復制一份后得到A_copy對象后,對于淺復制來說,A和A_copy指向的是同一個內存資源,復制的 只不過是是一個指針,對象本身資源 還是只有一份,那如果我們對A_copy執行了修改操作,那么發現A引用的對象同樣被修改,這其實違背了我們復制拷貝的一 個思想。深復制就好理解了,內存中存在了

兩份獨立對象本身。//當修改A時,A copy不變。

17.數據持久化存儲方式有哪些?以及特點

1.plist 屬性列表 最外層只能存儲數組字典 里面只能存儲 bool NSNumber String Data Date

2.NSUserDefault 最終也是保存成plist 系統封裝了保存的路徑 保存的方法

3.歸檔 可以對保存數據的文件 進行加密

4.sqlite? 關系型數據庫 以表的形式存儲? FMDB是對 OC中 sqlite操作封裝 的第三方庫

5.coreData 是蘋果封裝的 對文件操作的框架 可以 以對象的形式存儲 底層數據文件可以是sqlite類型 也可以是XML JSON …

18.get 和post的區別?

Get:與GETurl封裝到一起,長度有限制,安全系數不高。服務器的接收者

Post:與URL參數分開,長度沒有限制,安全系數高,服務器的發送者

19.TCP? UDP的區別?

TCP:是傳輸控制協議:是面連接的,那么運行環境必然要求可能性不可丟包,有良好的擁塞控制機制

UDP:是用戶數據報協議:主要用在實時性要求高以及對質量相對較若的地方,但面對現在高質量的線路不容易丟包,除非是一些擁塞條件下

20.什么是沙盒?有幾個文件夾?

出于安全的目的,應用程序只能將自己的數據和偏好設置寫入到幾個特定的位置上。當應用程序被安裝到設備上時,系統會為其創建一個家目錄,這個家目錄就是應用程序的沙盒。

Documents:蘋果建議將程序中建立的或在程序中瀏覽到的文件數據保存在該目錄下;

Library:存儲程序的默認設置或其它狀態信息;

tmp:提供一個即時創建臨時文件的地方。

ppName.app 目錄:這是應用程序的程序包目錄,包含應用程序的本身。由于應用程序必須經過簽名,所以您在運行時不能對這個目錄中的內容進行修改,否則可能會使應用程序無法啟動。


?這個文檔會根據朋友面試的經歷,我會持續更新的,希望對大家有幫助!!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,786評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,656評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,697評論 0 379
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,098評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,855評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,254評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,322評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,473評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,014評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,833評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,016評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,568評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,273評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,680評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,946評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,730評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,006評論 2 374

推薦閱讀更多精彩內容

  • 1.項目經驗 2.基礎問題 3.指南認識 4.解決思路 ios開發三大塊: 1.Oc基礎 2.CocoaTouch...
    陽光的大男孩兒閱讀 5,012評論 0 13
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,196評論 30 471
  • Object-c的類可以多重繼承么?可以實現多個接口么?Category是什么?重寫一個類的方式用繼承好還是分類好...
    small_Sun閱讀 746評論 0 0
  • 好奇星座這個東西。 我和她是天蝎座x巨蟹座。 但是我不像天蝎座那樣冷靜理智,她不像巨蟹座那樣......哪樣?好吧...
    長命與你閱讀 147評論 0 0
  • 昵稱:XZQian__ 現居廣東,本可愛金牛座,愛好唱歌,寫作 交友:你主動我們就會有故事 自薦文章『鯤高』我們的...
    XZQian__閱讀 444評論 0 0