1. 程式人生 > >100家企業近年面試題整理

100家企業近年面試題整理

打造最受企業歡迎的iOS開發者:

一直都存在的問題,什麼樣的員工最受企業歡迎?

一直也有人在努力提升自己,成為受企業歡迎的員工

然而,我們應該往方向去提升自己呢?

100家知名企業今年來iOS面試題合集:

你要的這裡都有;

企業要的這裡也有;

從基礎開始到進階、深入底層

整理出188個大綱,乾貨太足

關注個人簡書:iOS開發溼

大綱展示:

1、swift和oc的區別

2、編譯連結

3、synthesize & denamic

4、在專案開發中常用的開發工具有哪些?

5、UITableView & UICollection

6、NSProxy & NSObject

7、Object & Swift

8、傳值通知 & 推送通知(本地&遠端)

9、第三方庫 & 第三方平臺

10、NSCache & NSDcitionary

11、 UIView的setNeedsDisplay和setNeedsLayout方法

12、UILayer & UIView

13、layoutSubViews & drawRects

14、UDID & UUID

15、CPU & GPU

16、點(pt)& 畫素(px)

17、屬性與成員變數

18、int和NSInteger的區別

(1)import和include

(2)@class

(3)全域性 & 靜態變數

19、類和物件

(1)分類拓展協議中哪些可以宣告屬性?

(2)繼承和類別的區別

(3)分類的作用

(4)分類的侷限性

20、category & extension

21、Foundation

(1)字串

(2)字串擷取

(3)格式

22、NSArray和NSDictionary

(1)iOS遍歷陣列/字典的方法

(2)NSValue NSNumber

(3)其它

(4)如何避免迴圈引用

23、CFSocket使用有哪幾個步驟

24、Core Foundation中提供了哪幾種操作Socket的方法?

25、解析XML檔案有哪幾種方式?

26、什麼是沙盒模型?哪些操作是屬於私有api範疇?

27、在一個物件的方法裡面:self.name= “object”;和 name =”object” 有什麼不同嗎?

28、請簡要說明viewDidLoad和viewDidUnload何時呼叫

29、建立控制器、檢視的方式

30、簡述記憶體分割槽情況

31、佇列和棧有什麼區別

32、iOS的系統架構

33、控制元件主要響應3種事件

34、xib檔案的構成分為哪3個圖示?都具有什麼功能

35、簡述檢視控制元件器的生命週期

36、app 專案的生命週期

(1)應用的生命週期

(2)簡要說明一下APP的啟動過程,main檔案說起,main函式中有什麼函式?作用是什麼?

(3)UIApplicationMain函式作用

(4)main函式作用

37、 動畫有基本型別有哪幾種;表檢視有哪幾種基本樣式。

38、實現簡單的表格顯示需要設定UITableView的什麼屬性、實現什麼協議?

39、Cocoa Touch提供了哪幾種Core Animation過渡型別?

40、UIView與CLayer有什麼區別?

41、Quatrz 2D的繪圖功能的三個核心概念是什麼並簡述其作用

42、iPhone OS主要提供了幾種播放音訊的方法?

43、使用AVAudioPlayer類呼叫哪個框架、使用步驟?

44、有哪幾種手勢通知方法、寫清楚方法名?

45、ViewController的didReceiveMemoryWarning怎麼被呼叫

46、什麼時候用delegate,什麼時候用Notification?

47、用預處理指令#define宣告一個常數,用以表明1年中有多少秒(忽略閏年問題)

48、寫一個”標準"巨集MIN ,這個巨集輸入兩個引數並返回較小的一個。

49、關鍵字const有什麼含意?修飾類呢?static的作用,用於類呢?還有extern c的作用

50、關鍵字volatile有什麼含意?並給出三個不同的例子

51、一個引數既可以是const還可以是volatile嗎? 一個指標可以是volatile 嗎?解釋為什麼。

52、static 關鍵字的作用

53、列舉幾種程序的同步機制,並比較其優缺點。

54、程序之間通訊的途徑

55、程序死鎖的原因

56、死鎖的4個必要條件

57、死鎖的處理

58、cocoa touch框架

59、自動釋放池是什麼,如何工作

60、sprintf,strcpy,memcpy使用上有什麼要注意的地方

61、你瞭解svn,cvs等版本控制工具麼?

62、什麼是push

63、靜態連結庫

64、OC三大特性

(1)封裝_點語法

(2)繼承

(3)多型

65、OC中如何實現多型

66、Objective-C的優缺點

67、對於OC,你認為最大的優點和最大的不足是什麼?對於不足之處,現在有沒有可用的方法繞過這些不足來實現需求。如果可以話,有沒有考慮或者實現過重新實現OC的功能,如果有,具體怎麼做?

68、oc中可修改和不可以修改型別

69、我們說的oc是動態執行時語言是什麼意思?

70、通知和協議的不同之處?

71、什麼是推送訊息?

72、關於多型性

73、什麼是謂詞?

74、做過的專案是否涉及網路訪問功能,使用什麼物件完成網路功能?

75、簡單介紹下NSURLConnection類及+sendSynchronousRequest:returningResponse:error:與– initWithRequest:delegate:兩個方法的區別?

76、談談Object-C的記憶體管理方式及過程?

77、Object-C有私有方法嗎?私有變數呢?

78、說說響應鏈

79、時間傳遞 & 響應者鏈

80、frame和bounds有什麼不同?

81、方法和選擇器有何不同?

82、OC的垃圾回收機制?

83、什麼是延遲載入?

84、是否在一個檢視控制器中嵌入兩個tableview控制器?

85、一個tableView是否可以關聯兩個不同的資料來源?你會怎麼處理?

86、什麼時候使用NSMutableArray,什麼時候使用NSArray?

87、給出委託方法的例項,並且說出UITableVIew的Data Source方法

88、在應用中可以建立多少autorelease物件,是否有限制?

89、如果我們不建立記憶體池,是否有記憶體池提供給我們?

90、什麼時候需要在程式中建立記憶體池?

91、類NSObject的那些方法經常被使用?

92、什麼是簡便構造方法?

93、如何使用Xcode設計通用應用?

94、 UIView的動畫效果有那些?

95、Object-C有多繼承嗎?沒有的話用什麼代替?cocoa 中所有的類都是NSObject 的子類

96、記憶體管理 Autorelease、retain、copy、assign的set方法和含義?

97、C和obj-c 如何混用

98、類別的作用?繼承和類別在實現中有何區別?

99、類別和類擴充套件的區別。

100、oc中的協議和java中的介面概念有何不同?

101、深拷貝與前拷貝區別

(1)什麼是深拷貝淺拷貝

(2)字串什麼時候使用copy,strong

(3)字串所在記憶體區域

(4)mutablecopy和copy @property(copy) NSMutableArray *arr;這樣寫有什麼問題

(5)如何讓自定義類可以使用copy修飾符

102、對於語句NSString*obj = [[NSData alloc] init]; obj在編譯時和執行時分別時什麼型別的物件?

103、#import 跟#include 又什麼區別,@class呢, #import<> 跟 #import”"又什麼區別?

104、Objective-C的類可以多重繼承麼?可以實現多個介面麼?Category是什麼?重寫一個類的方法用繼承好還是分類好?為什麼?

105、 #import 跟#include 又什麼區別,@class呢, #import<> 跟 #import””又什麼區別?

106、寫一個setter方法用於完成@property (nonatomic,retain)NSString *name,寫一個setter方法用於完成@property(nonatomic,copy)NSString *name

107、常見的Objective-C的資料型別有那些, 和C的基本資料型別有什麼區別?如:NSInteger和int

108、id 宣告的物件有什麼特性?

109、Objective-C如何對記憶體管理的,說說你的看法和解決方法?

110、原子(atomic)跟非原子(non-atomic)屬性有什麼區別?

111、看下面的程式,第一個NSLog會輸出什麼?這時str的retainCount是多少?第二個和第三個呢? 為什麼?

112、記憶體管理的幾條原則時什麼?按照預設法則.那些關鍵字生成的物件需要手動釋放?在和property結合的時候怎樣有效的避免記憶體洩露?

113、如何對iOS裝置進行效能測試?

114、設計模式

(1)mvc模式

(2)單例模式

(3)mvvm模式

(4)觀察者模式

(5)工廠模式

(6)代理模式

(7)策略模式

(8)介面卡模式

(9)模版模式

(10)外觀模式

(11)建立模式

(12)MVP模式

115、MVVM模式原理分析

116、說說常用的幾種傳值方式

117、什麼時候用delegate,什麼時候用Notification

118、對於單例的理解

119、從設計模式角度分析代理,通知和KVO區別?ios SDK 提供 的framework使用了哪些設計模式,為什麼使用?有哪些好處和壞處?

120、KVO,NSNotification,delegate及block區別

121、執行時(runTime)

122、runtime/訊息轉發機制

(1)runtime

1.1、什麼是runtime

1.2、runtime幹什麼用,使用場景

(2)訊息機制

2.1、訊息轉發的原理

2.2、SEL isa super cmd 是什麼

(3)動態繫結

123、使用bugly進行崩潰分析

124、jenkens 持續打包

125、KVO & KVC

(1)底層實現

(2)KVO概述

(3)KVC概述

126、什麼是KVO和KVC?

KVO和KVC

(1)如何呼叫私有變數,如何修改系統的只讀屬性,KVC的查詢順序

(2)什麼是鍵-值,鍵路徑是什麼

(3)kvo的實現機制

(4)KVO計算屬性,設定依賴鍵

(5)KVO集合屬性

(6)kvo使用場景

127、SDWebImage(SDWebImage的實現機制)

(1)主要功能

(2)快取

(3)記憶體快取與磁碟快取

128、框架 SDWebimage的快取機制

129、網路安全

密碼的安全原則

130、多執行緒

(1)多執行緒概念

(2)多執行緒的作用

(3)使用場景

131、NSOperationQueue和GCD的區別是什麼

132、GCD與NSThread的區別

133、程序和執行緒的區別與聯絡是什麼?

134、別異步執行兩個耗時操作,等兩次耗時操作都執行完畢後,再回到主執行緒執行操作. 使用佇列組(`dispatch_group_t`)快速,高效的實現上述需求

135、在專案什麼時候選擇使用GCD,什麼時候選擇NSOperation?

136、對比iOS中的多執行緒技術

137、多執行緒優缺點

138、iOS中的延遲操作

139、序列佇列同步執行和非同步主佇列

140、資源搶奪解決方案

141、`dispatch_barrier_async`的作用是什麼?

相關推薦

100企業近年試題整理

打造最受企業歡迎的iOS開發者:一直都存在的問題,什麼樣的員工最受企業歡迎?一直也有人在努力提升自己,成為受企業歡迎的員工然而,我們應該往方向去提升自己呢?100家知名企業今年來iOS面試題合集:你要的這裡都有;企業要的這裡也有;從基礎開始到進階、深入底層整理出188個大綱,

網際網路運營、產品崗一定要看的試題(一線二線網際網路企業試題整理

小夥伴們也許會有疑問: 這些題都是往年的,會再考嗎? 小菌覺得,70%左右不會了。 那麼把時間花在不會問到的題目上,不是一種浪費嗎? 小菌覺得,不會。 因為,企業在為每個崗位選擇人才的時候,崗位的能力和素質模型是固定的,即什麼樣的崗位需要哪幾方面的能力,是不變

2011Android技術面試整理附有詳細答案(包括百度、新浪、中科軟等多公司筆試試題)

1、    Android的四大元件是哪些,它們的作用? 答:Activity:Activity是Android程式與使用者互動的視窗,是Android構造塊中最基本的一種,它需要為保持各介面的狀態,做很多持久化的事情,妥善管理生命週期以及一些跳轉邏輯

100道Java高頻試題(阿里面試官整理)

> 我分享文章的時候,有個讀者回復說他去年就關注了我的微信公眾號,打算看完我的所有文章,然後去面試,結果我後來很長時間不更新了。。。所以為了彌補一直等我的娃兒們,給大家的金三銀四準備了100道花時間準備的高頻Java面試題,大家不要太感動,記得點贊評論就行。 這次只放出九十道,剩下10道準備找認識的幾

企業Shell試題14:開發腳本入侵檢測與報警案例

開發腳本入侵檢測與報警案例、md5sum指紋、 面試及實戰考試題:監控web站點目錄(/var/html/www)下所有文件是否被惡意篡改(文件內容被改了),如果有就打印改動的文件名(發郵件),定時任務每3分鐘執行一次。1.1問題分析1)首先要說明的是,思考過程的積累比實際代碼開發的能力積累更重

Python 試題整理1

歸並 遞歸函數 color 算術 div microsoft 變量 ldp 路徑 參考網頁:15 Essential Python Interview Questions 1. 什麽是Python?   可以在回答中與其他技術作對比(鼓勵這麽做);如果應聘的是一個Pytho

前端開發--試題整理(JS篇)

狀態 state oda 通過 cli 命名空間 script push arguments 1.截取字符串abcdace的acealert(‘abcdace‘.substring(4)); 2.規避javascript多人開發函數重名問題命名空間封閉空間js模塊化mvc(

java試題整理(1)

pmap 復制 java對象 試題 取出 樹形 年輕代和老年代 com 足夠 1、Equals與==的區別?   ==是判斷兩個變量或者實例是不是指向同一個內存地址   equals是判斷兩個變量或者實例所指向的內存地址中的值是不是相同 2、Object有哪些公用方法?  

工作3年java試題整理

推導 關註 使用權 java面試題 post提交數據 標題 默認 block dbr 基礎題目 Java線程的狀態 一. 線程狀態類型:1. 新建狀態(New):新創建了一個線程對象。2. 就緒狀態(Runnable):線程對象創建後,其他線程調用了該對象的star

各大互聯網企業Java試題匯總,看我如何成功拿到百度的offer

ati nta 評價 可能 代碼 context 最好 alt ice 前言 本人Java開發,5年經驗,7月初來到帝都,開啟面試經歷,前後20天左右,主面互聯網公司,一二線大公司或者是融資中的創業公司都面試過,拿了一些offer,其中包括奇虎360,最後綜合決定還是去百

100道Java基礎試題

nvi ++i 成員 取出 並發 字符串長度 反轉 static container 1.什麽是B/S架構?什麽是C/S架構 B/S(Browser/Server),瀏覽器/服務器程序 C/S(Client/Server),客戶端/服務端,桌面應用程序 2.你

Java試題整理

head float 範圍 類型 OS 接口 pre eve 整數 Java基礎 Java數據類型 基本數據類型 數值型 1.整數類型(byte,int,short,long) 2.浮點類型(float,double) 字符型(char) 布爾型(boole

JAVA筆記:多線程試題整理

java 分布式 編程語言 程序員 面試 多線程有幾種實現方案,分別是哪幾種??? 三種。繼承Thread類實現Runnable接口:Java不支持類的多重繼承,但允許你調用多個接口。所以如果你要繼承其他類,當然是調用Runnable接口好了。線程與進程的區別??? 線程是進程的子集,一個

java試題整理2

不可 版本 服務器端 線程 返回 結構 HA 性能調優 CP 一篇 1.Mybatis和hibernate分頁取數實現,一次性取數? Mybatis分為:內存分頁(假分頁)通過遊標截取; 物理分頁; MySQL

試題整理

結束 表達 pri pen int 命名空間 span 內存 面試 1.現有兩元祖 ((‘a‘),(‘b‘),(‘c‘),(‘d‘) ) ,請使用Python中的匿名函數生成列表 [ {‘a‘:‘c‘},{‘c‘:‘d‘}] 答案 2.看代碼寫結果。 def func

試題整理 有經驗自己的語言

改進 IV spec block tail 連續 的人 prim 排序 4、談談你對JVM的理解? 答: Java語言的一個非常重要的特點就是與平臺的無關性。而使用Java虛擬機是實現這一特點的關鍵。Java編譯器只要面向JVM,生成JVM能理解的代碼或字節碼文件。Java

Java基礎-數據類型試題整理

span 通過 str code 版權 內存 不變 法律 字節數組                   Java基礎-數據類型面試題整理                                   作者:尹正傑 版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

試題整理(2)

異常處理 特性 重新 有意 contain catch 類型 長度 all 1.什麽是叠代器? Iterator接口提供了很多對集合進行叠代的方法。每一個集合類都包含了可以返回叠代器實例的叠代方法。 叠代器可以在叠代過程中刪除底層集合的元素,但是不可以直接調用集合的re

JAVA試題整理-基礎

catch inflate 線程 cat serializa table lca sort str 1、List 和 Set 的區別 共同點:它們都是Collection的子接口 區別: List:這個接口能夠精準的記錄每一個元素的插入位置(換句話說就是這個接口內容所

Java多線程試題整理

exe tostring .com lock 環境 作用範圍 基於 key 顯示 線程是操作系統能夠進行運算調度的最小單位,它被包含在進程之中,是進程中的實際運作單位。程序員可以通過它進行多處理器編程,你可以使用多線程對運算密集型任務提速。比如,如果一個線程完成一個任務要1