高級iOS開發工程師的面試題

1:CALayer與UIView的區別是什麼?算法

二者最大的區別就是:塗層不會直接渲染到屏幕上;數據庫

UIView是iOS界面元素的基礎,全部界面元素都是繼承於它,他的自己全是由CoreAnimation來實現的;編程

真正的繪圖部分,是有CALayer類來管理的;設計模式

一個UIView上能夠有n個CALayer,每一個layer來顯示一種東西,加強UIView的展示能力。安全

2:GCD服務器

GCD是蘋果公司開發的一個較新的多核編程的解決辦法。網絡

GCD是一個能夠替代諸如NSThread等技術的很高效和強大的技術,徹底能夠處理如數據鎖定和資源泄露等複雜的異步編程問題。數據結構

3:TCP和UDP異步

TCP:(傳輸控制協議),提供面向鏈接的、可靠地點對點的通訊;socket

UDP:(用戶數據報協議),提供非鏈接的不可靠的點對多點的通訊;

實際運用中,看程序注重的是哪一方面,是可靠仍是快速;

4:socket鏈接與http鏈接

http鏈接:短鏈接。即客戶端向服務端發送一次請求,服務端響應以後,連接即會斷掉;

socket鏈接:長鏈接。即客戶端一旦與服務器創建接連,便不會主動斷掉。

5:TCP的三次握手

第一次握手:客戶端發送syn(syn=j)包到服務器,並進入syn_send狀態,等待服務器進行確認;

第二次握手:服務器收到客戶端的syn包,必須確認客戶的SYN(ack = j + 1),同時本身也發送一個SYN包(syn = k),即SYN + ACK包,此時服務器進入SYN_RECV狀態;

第三次握手:客戶收到服務器發送的SYN+ACK包以後,向服務器發送確認包(ACK = k + 1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成第三次握手。

6:iOS中對象之間有哪些通信方式?

代理 Block 通知  KVO

7:http協議的特色,GET POST 請求,以及https協議

http短鏈接,客戶端主動發送請求,服務器作出響應,服務器相應以後,鏈接斷開。GET 請求沒有請求體,POST請求有請求體。

https:安全超文本傳輸協議。基於HTTP開發,用戶在客戶計算機與服務器之間交換信息。它使用安全套接字層(SSL)進行信息交換,簡單來講就是HTTP的安全版。

8:XML與JSON數據解析

XML:DOM和SAX解析

DOM解析必須完成DOM樹的構造,在處理規模較大的XML文件時很好內存,佔用資源較多

SAX解析是用事件驅動模型,解析XML的時候每遇到一個XML開始或者結束標籤、屬性或者一條指令,程序就產生一個相應的事件來進行相應的處理。SAX相對於DOM來講更適合處理較大的文檔。

JSON:JSONKit、系統自帶

9:TableView複用  設計模式

單例 組合設計模式  UIButton設計模式

10:數據存儲

偏好設置  Plist文件 Sqlite數據庫 CoreDate

11:斷點續傳如何實現的?

12:Core內容:CoreAnimation、CoreGraphics,分別使用CA或者CG作過什麼樣的動畫或者圖像上的內容?

13:NSOperationQueue、GCD

14:算法:冒泡排序、二分法、數據結構(鏈表、二叉樹、算法時間複雜度、空間複雜度),操做系統,網絡知識。

相關文章
相關標籤/搜索