IOS面試之道 版權(quán)信息
- ISBN:9787121342622
- 條形碼:9787121342622 ; 978-7-121-34262-2
- 裝幀:一般膠版紙
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
IOS面試之道 本書特色
《iOS面試之道》是作者將多年的工作經(jīng)驗和積累,結(jié)合具體面試內(nèi)容總結(jié)而成的。 《iOS面試之道》共分為3部分。第1部分為面試準(zhǔn)備,詳細(xì)介紹求職中遇到的基本問題,作者根據(jù)其多年的經(jīng)驗,在面試流程、簡歷投遞、復(fù)習(xí)準(zhǔn)備方面給出了完善的參考意見和建議。第2部分為算法知識。算法幾乎是各種水平的程序員都要面對的考查內(nèi)容。該部分采用Swift語言重新審視了多種數(shù)據(jù)結(jié)構(gòu)和算法原理,可以說是為iOS開發(fā)者量身打造的算法解答。第3部分為iOS專業(yè)問答,分為語言工具、系統(tǒng)框架和經(jīng)驗之談,采用問答的形式來詳細(xì)介紹。 如果你是一名iOS開發(fā)者,并且正準(zhǔn)備跳槽,那么本書是一本不錯的復(fù)習(xí)參考書;如果你沒有面試計劃,那么本書也可以幫助你對iOS知識進(jìn)行提綱挈領(lǐng)的整理;如果你是面試官,那么希望本書能為你提供考查應(yīng)聘者的依據(jù)和源泉;對于具有其他背景的軟件工程師,若想一窺iOS世界的知識框架,本書也是不錯的切入點。
IOS面試之道 內(nèi)容簡介
《iOS面試之道》是作者將多年的工作經(jīng)驗和積累,結(jié)合具體面試內(nèi)容總結(jié)而成的。《iOS面試之道》共分為3部分。靠前部分為面試準(zhǔn)備,詳細(xì)介紹求職中遇到的基本問題,作者根據(jù)其多年的經(jīng)驗,在面試流程、簡歷投遞、復(fù)習(xí)準(zhǔn)備方面給出了完善的參考意見和建議。第2部分為算法知識。算法幾乎是各種水平的程序員都要面對的考查內(nèi)容。該部分采用Swift語言重新審視了多種數(shù)據(jù)結(jié)構(gòu)和算法原理,可以說是為iOS開發(fā)者量身打造的算法解答。第3部分為iOS專業(yè)問答,分為語言工具、系統(tǒng)框架和經(jīng)驗之談,采用問答的形式來詳細(xì)介紹。如果你是一名iOS開發(fā)者,并且正準(zhǔn)備跳槽,那么本書是一本不錯的復(fù)習(xí)參考書;如果你沒有面試計劃,那么本書也可以幫助你對iOS知識進(jìn)行提綱挈領(lǐng)的整理;如果你是面試官,那么希望本書能為你提供考查應(yīng)聘者的依據(jù)和源泉;對于具有其他背景的軟件工程師,若想一窺iOS世界的知識框架,本書也是不錯的切入點。
IOS面試之道 目錄
第1章 iOS工程師的面試 / 1
1.1 簡歷的準(zhǔn)備 / 1
1.2 尋找機(jī)會 / 8
1.3 面試流程 / 9
1.4 代碼和系統(tǒng)設(shè)計的準(zhǔn)備 / 16
1.5 如何提問 / 22
1.6 Offer的比較和選擇 / 24
第2章 算法基礎(chǔ) / 28
2.1 基本的數(shù)據(jù)結(jié)構(gòu) / 28
數(shù)組 / 28
字典和集合 / 30
字符串 / 32
2.2 鏈表 / 34
鏈表的基本概念 / 34
Dummy節(jié)點和尾插法 / 35
快行指針 / 38
2.3 棧和隊列 / 40
棧和隊列的基本概念 / 40
棧和隊列互相轉(zhuǎn)換 / 43
棧和隊列面試實戰(zhàn)題 / 45
2.4 二叉樹 / 47
二叉樹的基本概念 / 48
二叉樹的遍歷 / 50
二叉樹面試實戰(zhàn)題 / 51
2.5 排序和搜索 / 54
排序的基本概念 / 54
搜索的基本概念 / 57
排序面試實戰(zhàn)題 / 59
搜索面試實戰(zhàn)題 / 61
iOS中搜索與排序的配合使用 / 64
2.6 深度優(yōu)先搜索和廣度優(yōu)先搜索 / 66
深度優(yōu)先搜索和廣度優(yōu)先搜索的基本概念 / 66
深度優(yōu)先搜索和廣度優(yōu)先搜索面試實戰(zhàn)題 / 69
2.7 動態(tài)規(guī)劃 / 74
斐波拉契數(shù)列問題 / 74
斐波拉契數(shù)列問題面試實戰(zhàn)題 / 77
第3章 語言工具 / 81
3.1 Swift / 81
Swift面試?yán)碚擃} / 81
Swift面試實戰(zhàn)題 / 88
3.2 Objective-C / 91
Objective-C面試?yán)碚擃} / 91
Objective-C面試實戰(zhàn)題 / 96
3.3 Swift VS Objective-C / 101
數(shù)據(jù)結(jié)構(gòu) / 101
編程思路 / 104
語言特性 / 105
3.4 Xcode使用 / 112
Xcode調(diào)試 / 112
分析與優(yōu)化 / 114
Playground技巧 / 117
第4章 系統(tǒng)框架 / 119
4.1 UI相關(guān)知識 / 119 UIKit / 119 UI控件和基本布局 / 119 動畫 / 124
多任務(wù)開發(fā) / 127
4.2 UIScrollView及其子類 / 131
UIScrollView及其子類理論面試題 / 131
拓展知識 / 134
優(yōu)化進(jìn)階 / 138
4.3 網(wǎng)絡(luò)、推送與數(shù)據(jù)處理 / 141
網(wǎng)絡(luò)、推送與數(shù)據(jù)處理相關(guān)理論 / 142
iOS網(wǎng)絡(luò)請求 / 144
信息推送 / 148
數(shù)據(jù)處理 / 150
4.4 并發(fā)編程 / 152
4.5 設(shè)計模式 / 168
第5章 經(jīng)驗之談 / 175
5.1 架構(gòu)的選擇 / 175
5.2 面向協(xié)議的編程 / 184
POP VS OOP / 184
POP面試實戰(zhàn)題 / 189
5.3 App的測試和上架 / 195
測試相關(guān)知識 / 195
App Store相關(guān)知識 / 201
結(jié)束語 / 204
題目目錄
給出一個字符串,要求將其按照單詞順序進(jìn)行反轉(zhuǎn) 33
類(class)和結(jié)構(gòu)體(struct)有什么區(qū)別 81
Swift是面向?qū)ο筮是函數(shù)式的編程語言 83
在Swift中,什么是可選型(Optional) 84
在Swift中,什么是泛型(Generics) 84
說明并比較關(guān)鍵詞:Open,Public,Internal,F(xiàn)ile-private和Private 85
說明并比較關(guān)鍵詞:Strong,Weak和Unowned 86
在Swift中,如何理解copy-on-write 87
什么是屬性觀察(Property Observer) 87
在結(jié)構(gòu)體中如何修改成員變量的方法 88
如何用Swift實現(xiàn)或(II)操作 89
實現(xiàn)一個函數(shù):輸入是任意一個整數(shù),輸出為輸入的整數(shù) 2 89
實現(xiàn)一個函數(shù):求0~100(包括0和100)中為偶數(shù)并且恰好是其他數(shù)字平方的
數(shù)字 90
什么是ARC 91
什么情況下會出現(xiàn)循環(huán)引用 92
說明并比較關(guān)鍵詞:strong,weak,assign和copy 93
說明并比較關(guān)鍵詞:atomatic和nonatomic 94
atomic是百分之百線程安全的嗎 94
說明并比較關(guān)鍵詞:_ _weak和_ _block 95
什么是block?它和代理的區(qū)別是什么 95
屬性聲明代碼風(fēng)格考查 96
架構(gòu)解耦代碼考查 97
內(nèi)存管理語法考查 98
多線程語法考查 99
以scheduledTimerWithTimeInterval的方式觸發(fā)的timer,在滑動頁面上的列表時,
timer會暫停,為什么?該如何解決 100
Swift為什么將String,Array和Dictionary設(shè)計成值類型 101
如何用Swift將協(xié)議(protocol)中的部分方法設(shè)計成可選(optional) 102
協(xié)議的代碼實戰(zhàn) 103
在Swift和Objective-C的混合編程項目中,如何在Swift文件中調(diào)用
Objective-C文件中定義的方法?如何在Objective-C文件中調(diào)用Swift
文件中定義的方法 104
比較Swift和Objective-C中的初始化方法(init)有什么異同 105
比較Swift和Objective-C中的協(xié)議(protocol)有什么異同 105
談?wù)剬bjective-C和Swift動態(tài)特性的理解 105
語言特性的代碼實戰(zhàn) 107
message send如果找不到對象,則會如何進(jìn)行后續(xù)處理 108
什么是method swizzling 108
Swift和Objective-C的自省(Introspection)有什么不同 109
能否通過Category給已有的類添加屬性(property) 110
LLDB中p和po有什么區(qū)別 112
Xcode中的Buildtime issues和Runtime issues指什么 113
App啟動時間過長,該怎樣優(yōu)化 114
如何用Xcode檢測代碼中的循環(huán)引用 115
怎樣解決EXC_BAD_ACCESS 116
如何在Playground中執(zhí)行異步操作 117
在playground中實現(xiàn)一個10行的列表,每行隨機(jī)顯示一個0~100的整數(shù) 118
要在UIView上定義一個Label有哪幾種方式 119
storyboard/xib和純代碼構(gòu)建UI相比,有哪些優(yōu)點和缺點 120
Auto Layout和Frame在UI布局和渲染上有什么區(qū)別 121
UIView和CALayer有什么區(qū)別 121
說明并比較關(guān)鍵詞:frame,bounds和center 122
說明并比較方法:layoutIfNeeded,layoutSubviews和setNeedsLayout 123
說明并比較關(guān)鍵詞:Safe Area,SafeAreaLayoutGuide和SafeAreaInsets 123
在iOS中實現(xiàn)動畫的方式有幾種 124
控制屏幕上的圓形小球,使其水平向右滑動200個point 125
在iOS開發(fā)中,如何保證App的UI在iPhone、iPad及iPad分屏情況下
依然適用 127
如何用drag & drop實現(xiàn)圖片拖動功能 129
說明并比較關(guān)鍵詞:contentView,contentInset,contentSize和contentOffset 131
說明UITableViewCell的重用機(jī)制 133
說明并比較協(xié)議:UITableViewDataSource和UITableViewDelegate 133
請說明并比較協(xié)議:UICollectionViewDataSource,UICollection- ViewDelegate
和UICollectionViewDelegateFlowLayout 133
實現(xiàn)一個10行的列表,每行隨機(jī)顯示一個0~100的整數(shù)。用戶可以刪除、
移動任何一行,下拉列表中的數(shù)字重新刷新 134
UICollectionView中的Supplementary Views和Decoration Views分別指什么 137
如果一個列表視圖滑動很慢,那么該怎樣優(yōu)化 138
說一說實現(xiàn)預(yù)加載的方法 139
如何用UICollectionView實現(xiàn)瀑布流界面 140
說一說HTTP中GET與POST的區(qū)別 142
說一說Session和Cookie的概念 142
說明并比較網(wǎng)絡(luò)通信協(xié)議:Ajax Polling,Long Polling,WebSockets和
Sever-Sent Event 143
在一個HTTPS連接的網(wǎng)站中,輸入賬號和密碼并單擊登錄按鈕后,
到服務(wù)器返回這個請求前,這期間經(jīng)歷了什么 143
說明并比較類:URLSessionTask,URLSessionDataTask,
URLSessionUploadTask和URLSessionDownloadTask 144
什么是Completion Handler 145
設(shè)計一個方法,在給定API的網(wǎng)址的條件下,返回用戶數(shù)據(jù) 146
在iOS開發(fā)中,本地消息通知的流程是怎樣的 148
說一說在iOS開發(fā)中,遠(yuǎn)程消息推送的原理 149
在iOS開發(fā)中,如何實現(xiàn)編碼和解碼 150
說一說在iOS開發(fā)中數(shù)據(jù)持久化的方案 151
在iOS開發(fā)中,對于并發(fā)操作有哪3種方式 153
比較關(guān)鍵詞:Serial,Concurrent,Sync和Async 153
串行隊列的代碼實戰(zhàn) 154
并行隊列的代碼實戰(zhàn) 156
舉例說明iOS并發(fā)編程中的三大問題 157
競態(tài)條件的代碼實戰(zhàn) 160
試比較GCD中的方法:dispatch_async,dispatch_after,dispatch_ once
和dispatch_group 162
GCD中全局(global)隊列有哪幾種優(yōu)先級 164
試比較Operations中的關(guān)鍵詞:Operation,BlockOperation和OperationQueue 164
如何在OperationQueue中取消某個Operation 166
在實際開發(fā)中,主線程和其他線程有哪些使用場景 168
說說你平常開發(fā)中用到的設(shè)計模式 169
什么是MVC 170
Objective-C和Swift在單例模式的創(chuàng)建上有什么區(qū)別 171
什么是裝飾模式(Decorator) 171
什么是觀察者模式(Observer) 172
什么是備忘錄模式(Memento) 174
比較蘋果官方的MVC架構(gòu)的優(yōu)點和缺點 176
MVC架構(gòu)的代碼實戰(zhàn) 177
MVCS中的S為什么要單獨拆分出來 179
MVP和MVC有什么異同 179
MVVM中的ViewModel的作用是什么 180
比較MVC、MVP和MVVM這三種架構(gòu) 181
VIPER之間的各個組件是如何交互的 182
什么是OOP?它在iOS開發(fā)中有哪些優(yōu)點 184
OOP在iOS開發(fā)中有哪些缺點 185
POP相比OOP有哪些優(yōu)勢 187
要給一個UIButton增加一個點擊后抖動的效果,該怎樣實現(xiàn) 189
POP的代碼實戰(zhàn) 190
試用Swift實現(xiàn)二分搜索算法 192
一個App崩潰了,可能是什么原因造成的 195
在模擬機(jī)上完成所有測試之后,就不需要在真機(jī)上再進(jìn)行測試了嗎 196
為什么在單元測試中引入代碼模塊要用@testable關(guān)鍵詞 197
單元測試的代碼實戰(zhàn) 197
說一說iOS中的性能測試(performance test) 199
說一說iOS開發(fā)中的UI測試 200
如何檢查測試覆蓋率 200
什么是iOS中的App ID 201
什么是iOS中的Code Signing 202
什么是iOS中的App Thinning 202
向App Store提交App時有哪些原因可能被拒 203
IOS面試之道 相關(guān)資料
《iOS面試之道》雖然講的是iOS和面試,但內(nèi)容涉及算法基礎(chǔ)、工具語言、系統(tǒng)框架、簡歷和面試準(zhǔn)備等豐富而有質(zhì)量的內(nèi)容。無論是哪個領(lǐng)域,面試對軟件開發(fā)工程師來說都是一塊非常好的敲門磚。良好的技術(shù)基礎(chǔ)和準(zhǔn)備充分的簡歷既可以幫助你打開向上的職業(yè)通道,也可以改變你的生活。如果你是一名移動開發(fā)工程師,那么建議閱讀這本書。——極客邦科技總裁,MacTalk作者 池建強(qiáng) 本書內(nèi)容涉及面試前的準(zhǔn)備、算法和數(shù)據(jù)結(jié)構(gòu)、UI設(shè)計、并發(fā)、網(wǎng)絡(luò)、設(shè)計模式等面試中經(jīng)常被問到的問題,對iOS新手程序員來說,這是一本不錯的書。其中的面試知識也適用于如Google、Facebook等國際大公司。另外,本書也給出了一個iOS程序員的技能樹地圖,除應(yīng)對面試外,只要你沿著這條路徑鉆研下去,就一定能夠開啟未來更為廣闊的天地。 ——程序員 陳皓(左耳朵耗子) 如何面試,面試前需要達(dá)到什么樣的水平,是初學(xué)者經(jīng)常問的問題。而一般面試方法都不被當(dāng)作硬實力,不過這個軟實力往往直接決定了你是否被錄用,以及薪資如何。可惜,很少有業(yè)內(nèi)的高手愿意在這樣的基本問題上發(fā)聲,所以,故胤道長和唐巧兩位高手寫的這本書就顯得更加珍貴,非常值得閱讀。——老iOS程序員 Tinyfool 本書介紹了iOS面試時需要的知識和全新的面試趨勢。第1章對面試的總結(jié)讓人身臨其境,第2章算法基礎(chǔ)精彩實用,后面的章節(jié)對各個知識點采用問答方式來介紹,問題豐富,有代表性,解答條理清晰,有針對性。這是一本很有價值的書。——滴滴iOS技術(shù)專家 戴銘 本書為iOS程序員面試量身定制,既有關(guān)鍵算法知識的分析,又有全新iOS面試題的解析;對技術(shù)難點的講解深入細(xì)致,易于吸收。對正在準(zhǔn)備面試的同學(xué)來說,是一本難得的好書。——iOS雜貨鋪店主 Peak 本書的算法基礎(chǔ)一章結(jié)合Swift語言和函數(shù)式編程思想,詳細(xì)、具體地介紹了iOS開發(fā)過程中經(jīng)常遇到的算法問題,在一問一答間還融入了作者對問題本質(zhì)的深刻理解和多年工作經(jīng)驗的沉淀,非常精彩,值得閱讀。——支付寶iOS工程師 念茜 作為技術(shù)研發(fā)人員,*終還是要靠自身實力說話。本書的每一節(jié)內(nèi)容都是作者結(jié)合自身的實戰(zhàn)經(jīng)驗精雕細(xì)琢而成的,簡潔而有深度,稱得上字字珠璣。本書不僅可以當(dāng)作面試指南,也可以作為我們的iOS知識體系的基本框架,值得細(xì)細(xì)研讀。——*iOS工程師 南大 程序員面試經(jīng)驗在網(wǎng)上隨處可見,但是內(nèi)容良莠不齊。如果你是一名iOS程序員,那么本書是不錯的選擇。本書不僅涵蓋簡歷準(zhǔn)備、算法知識等基礎(chǔ),還對面試所需的開發(fā)語言、框架和架構(gòu)都做了分析和答疑,是一本值得面試者閱讀的好書。 ——微信iOS工程師 芒果 本書是一本優(yōu)質(zhì)的面試指南:融合了簡歷修改、面試準(zhǔn)備、算法基礎(chǔ)、函數(shù)式編程等當(dāng)下全新、實用的iOS面試開發(fā)內(nèi)容,并結(jié)合作者多年iOS開發(fā)工作和開源經(jīng)驗,為讀者介紹了iOS開發(fā)者應(yīng)該理解并熟悉的重點。——谷歌iOS工程師 老驢
IOS面試之道 作者簡介
故胤道長 卡內(nèi)基梅隆大學(xué)碩士畢業(yè),常年居住于美國的iOS開發(fā)者;先后就職于Uber、Amazon GitHub全美前20名的Swift開源作者 唐巧 資深 iOS 開發(fā)者 擁有超過10萬個微信公眾號和微博粉絲,一直努力分享iOS相關(guān)知識 著有《iOS開發(fā)進(jìn)階》 一書 現(xiàn)任猿輔導(dǎo)公司,小猿搜題產(chǎn)品技術(shù)負(fù)責(zé)人
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
名家?guī)阕x魯迅:故事新編
- >
伊索寓言-世界文學(xué)名著典藏-全譯本
- >
伯納黛特,你要去哪(2021新版)
- >
自卑與超越
- >
巴金-再思錄
- >
回憶愛瑪儂
- >
莉莉和章魚