標籤:
面試筆試精華(二)
警告:一定要把英文題目過一遍,有些公司的題目故意弄成英文的!!!
1. Difference between shallow copy and deep copy?
淺複製和深複製的區別?
1> 淺拷貝:指標(地址)拷貝,不會產生新對象
2> 深拷貝:內容拷貝,會產生新對象
2. What is advantage of categories? What is difference between implementing a category and inheritance?
類別的作用?繼承和類別在實現中有何區別?
1> 分類可以在不修改原來類模型的基礎上拓充方法
2> 分類只能擴充方法、不能擴充成員變數;繼承可以擴充方法和成員變數
3> 繼承會產生新的類
3. Difference between categories and extensions??
類別和類擴充的區別?
1> 分類是有名稱的,類擴充沒有名稱
2> 分類只能擴充方法、不能擴充成員變數;類擴充可以擴充方法和成員變數
3> 類擴充一般就寫在.m檔案中,用來擴充私人的方法和成員變數(屬性)
4. Difference between protocol in objective c and interfaces in java??
oc中的協議和java中的介面概念有何不同?
1> Java的介面中聲明的方法必須都實現
2> Oc的protocol中聲明的方法並不一定要實現
5. What are KVO and KVC?
1> KVC是索引值編碼,可以通過一個字串的key(屬性名稱)修改對象的屬性值
2> KVO是索引值監聽,可以監聽一個對象屬性值的改變
6. What is purpose of delegates??
代理的作用?
1> 兩個對象之間傳遞資料和訊息
2> 解耦,拆分商務邏輯
7. What are mutable and immutable types in Objective C??
oc中可修改和不可以修改類型?
1> mutable是可變類型,比如NSMutableArray,可以動態往裡面添加元素
2> immutable是不可變類型,比如NSArray,固定的儲存空間,不能添加元素
8. When we call objective c is runtime language what does it mean??
我們說的oc是動態運行時語言是什麼意思?
1> 動態綁定:物件類型在運行時才真正確定
2> 多態性
9. what is difference between NSNotification and protocol??
通知和協議的不同之處
1> 通過NSNotification可以給多個對象傳遞資料和訊息
2> 通過protocol(代理模式)只能給一個對象傳遞資料和訊息
10. What is push notification??
什麼是推送訊息?
1> 本地推送:程式內部彈出通知到使用者裝置
2> 遠程推送:由推送伺服器推播通知到使用者裝置
11. What is Polymorphism??
關於多態性?
多態:父類指標指向子類對象
12. What is Singleton??
對於單例的理解
單例:保證程式運行過程中,永遠只有一個對象執行個體
目的是:全域共用一份資源、節省不必要的記憶體開銷
13. What is responder chain??
? 響應者鏈:
l UIResponder有一個nextResponder屬性,通過該屬性可以組成一個響應者鏈,事件或訊息在其路徑上進行傳遞
l 如果UIResponder沒有處理傳給它的事件,會將未處理的訊息轉寄給自己的nextResponder
14. Difference between frame and bounds??
frame和bounds有什麼不同?
1> frame以父控制項的左上方為座標原點
2> bounds以控制項本身的左上方為座標原點
15. Difference between method and selector??
方法和選取器有何不同?
通過一個selector可以找到方法地址,進而調用一個方法
補充:selector是一個方法的名字,method是一個組合體,包含了名字和實現.
16. Is there any garbage collection mechanism in Objective C.??
OC的記憶體回收機制?
1> OC 1.0沒有記憶體回收
2> OC 2.0有記憶體回收,只能用在Mac上
3> iOS中有ARC機制,是編譯器特性,記憶體回收是運行時特性
17. What is NSOperation queue??
1> 用來存放NSOperation對象的隊列,可以用來非同步執行一些操作
2> 一般可以用在網路請求等耗時操作
18. What is lazy loading??
消極式載入:比如控制器的view,在第一次用到view時才會調用loadView方法進行建立
19. Can we use two tableview controllers on one viewcontroller?
是否在一個視圖控制器中嵌入兩個tableview控制器?
從技術角度上分析,一個控制器內部添加2個表格控制器是沒有問題的
20. Can we use one tableview with two different datasources? How you will achieve this???
一個tableView是否可以關聯兩個不同的資料來源?你會怎麼處理?
從對象屬性上分析,tableView只有一個dataSource屬性。當然,真要使用2個不同的資料來源,還是有其他辦法解決的
iOS開發——面試筆試精華(二)