面試筆試精華(二)java
警告:必定要把英文題目過一遍,有些公司的題目故意弄成英文的!!!面試
淺複製和深複製的區別?服務器
1> 淺拷貝:指針(地址)拷貝,不會產生新對象網絡
2> 深拷貝:內容拷貝,會產生新對象異步
類別的做用?繼承和類別在實現中有何區別?this
1> 分類能夠在不修改原來類模型的基礎上拓充方法編碼
2> 分類只能擴充方法、不能擴充成員變量;繼承能夠擴充方法和成員變量代理
3> 繼承會產生新的類指針
類別和類擴展的區別?對象
1> 分類是有名稱的,類擴展沒有名稱
2> 分類只能擴充方法、不能擴充成員變量;類擴展能夠擴充方法和成員變量
3> 類擴展通常就寫在.m文件中,用來擴充私有的方法和成員變量(屬性)
oc中的協議和java中的接口概念有何不一樣?
1> Java的接口中聲明的方法必須都實現
2> Oc的protocol中聲明的方法並不必定要實現
1> KVC是鍵值編碼,能夠經過一個字符串的key(屬性名)修改對象的屬性值
2> KVO是鍵值監聽,能夠監聽一個對象屬性值的改變
代理的做用?
1> 兩個對象之間傳遞數據和消息
2> 解耦,拆分業務邏輯
oc中可修改和不能夠修改類型?
1> mutable是可變類型,好比NSMutableArray,能夠動態往裏面添加元素
2> immutable是不可變類型,好比NSArray,固定的存儲空間,不能添加元素
咱們說的oc是動態運行時語言是什麼意思?
1> 動態綁定:對象類型在運行時才真正肯定
2> 多態性
通知和協議的不一樣之處
1> 經過NSNotification能夠給多個對象傳遞數據和消息
2> 經過protocol(代理模式)只能給一個對象傳遞數據和消息
什麼是推送消息?
1> 本地推送:程序內部彈出通知到用戶設備
2> 遠程推送:由推送服務器推送通知到用戶設備
關於多態性?
多態:父類指針指向子類對象
對於單例的理解
單例:保證程序運行過程當中,永遠只有一個對象實例
目的是:全局共享一份資源、節省沒必要要的內存開銷
響應者鏈:
l UIResponder有一個nextResponder屬性,經過該屬性能夠組成一個響應者鏈,事件或消息在其路徑上進行傳遞
l 若是UIResponder沒有處理傳給它的事件,會將未處理的消息轉發給本身的nextResponder
frame和bounds有什麼不一樣?
1> frame以父控件的左上角爲座標原點
2> bounds以控件自己的左上角爲座標原點
方法和選擇器有何不一樣?
經過一個selector能夠找到方法地址,進而調用一個方法
補充:selector是一個方法的名字,method是一個組合體,包含了名字和實現.
OC的垃圾回收機制?
1> OC 1.0沒有垃圾回收
2> OC 2.0有垃圾回收,只能用在Mac上
3> iOS中有ARC機制,是編譯器特性,垃圾回收是運行時特性
1> 用來存放NSOperation對象的隊列,能夠用來異步執行一些操做
2> 通常能夠用在網絡請求等耗時操做
延遲加載:好比控制器的view,在第一次用到view時纔會調用loadView方法進行建立
是否在一個視圖控制器中嵌入兩個tableview控制器?
從技術角度上分析,一個控制器內部添加2個表格控制器是沒有問題的
一個tableView是否能夠關聯兩個不一樣的數據源?你會怎麼處理?
從對象屬性上分析,tableView只有一個dataSource屬性。固然,真要使用2個不一樣的數據源,仍是有其餘辦法解決的