iOS開發-面試總結(六)筆試(二)

面試筆試精華(二)java

警告:必定要把英文題目過一遍,有些公司的題目故意弄成英文的!!!面試

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?

類別的做用?繼承和類別在實現中有何區別?this

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個不一樣的數據源,仍是有其餘辦法解決的

相關文章
相關標籤/搜索