本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
商品基本信息,请以下列介绍为准 | |
商品名称: | iOS面试之道 |
作者: | 故胤道长,唐巧著 |
定价: | 59.0 |
出版社: | 电子工业出版社 |
出版日期: | 2018-07-01 |
ISBN: | 9787121342622 |
印次: | 1 |
版次: | |
装帧: | |
开本: | 小16开 |
内容简介 | |
《iOS面试之道》是作者将多年的工作经验和积累,结合具体面试内容总结而成的。 《iOS面试之道》共分为3部分。第1部分为面试准备,详细介绍求职中遇到的基本问题,作者根据其多年的经验,在面试流程、简历投递、面给出了完善的参考意见和建议。第2部分为算法知识。算法几乎是各种的程序员都要面对的考查内容。该部分采用Swift语言重新审视了多种数据结构和算法原理,可以说是为iOS开发者量身打造的算法解答。第3部分为iOS专业问答,分为语言工具、系统框架和经验之谈,采用问答的形式来详细介绍。 如果你是一名iOS开发者,并且正准备跳槽,那么本书是一本不错的复书;如果你没有面试计划,那么本书也可以帮助你对iOS知行提纲挈领的整理;如果你是面试官,那么希望本书能为你提供考查应聘者的依据和源泉;对于具有其他背景的软件工程师,若想一窥iOS的知识框架,本书也是不错的切入点。 |
目录 | |
目录 第1章 ?iOS工程师的面试 ? / ?1 1.1 ?简历的准备 ? / ?1 1.2 ?寻找机会 ? / ?8 1.3 ?面试流程 ? / ?9 1.4 ?代码和系统设计的准备 ? / ?16 1.5 ?如何提问 ? / ?22 1.6 ?Offer的比较和选择 ? / ?24 第2章 ?算法基础 ? / ?28 2.1 ?基本的数据结构 ? / ?28 数组 ? / ?28 字典和集合 ? / ?30 字符串 ? / ?32 2.2 ?链表 ? / ?34 链表的基本概念 ? / ?34 Dummy节点和尾插法 ? / ?35 快行指针 ? / ?38 2.3 ?栈和队列 ? / ?40 栈和队列的基本概念 ? / ?40 栈和队列互相转换 ? / ?43 栈和队列面试实战题 ? / ?45 2.4 ?二叉树 ? / ?47 二叉树的基本概念 ? / ?48 二叉树的遍历 ? / ?50 二叉树面试实战题 ? / ?51 2.5 ?排序和搜索 ? / ?54 排序的基本概念 ? / ?54 搜索的基本概念 ? / ?57 排序面试实战题 ? / ?59 搜索面试实战题 ? / ?61 iOS中搜索与排序的配合使用 ? / ?64 2.6 ?深度优先搜索和广度优先搜索 ? / ?66 深度优先搜索和广度优先搜索的基本概念 ? / ?66 深度优先搜索和广度优先搜索面试实战题 ? / ?69 2.7 ?动态规划 ? / ?74 斐波拉契数列问题 ? / ?74 斐波拉契数列问题面试实战题 ? / ?77 第3章 ?语言工具 ? / ?81 3.1 ?Swift ? / ?81 Swift面试理论题 ? / ?81 Swift面试实战题 ? / ?88 3.2 ?Objective-C ? / ?91 Objective-C面试理论题 ? / ?91 Objective-C面试实战题 ? / ?96 3.3 ?Swift VS Objective-C ? / ?101 数据结构 ? / ?101 编程思路 ? / ?104 语言特性 ? / ?105 3.4 ?Xcode使用 ? / ?112 Xcode调试 ? / ?112 分析与优化 ? / ?114 Playground技巧 ? / ?117 第4章 ?系统框架 ? / ?119 4.1 ?UI相关知识 ? / ?119 UIKit ? / ?119 UI控件和基本布局 ? / ?119 动画 ? / ?124 多任务开发 ? / ?127 4.2 ?UIScrollView及其子类 ? / ?131 UIScrollView及其子类理论面试题 ? / ?131 拓展知识 ? / ?134 优阶 ? / ?138 4.3 ?网络、推送与数据处理 ? / ?141 网络、推送与数据处理相关理论 ? / ?142 iOS网络请求 ? / ?144 信息推送 ? / ?148 数据处理 ? / ?150 4.4 ?并发编程 ? / ?152 4.5 ?设计模式 ? / ?168 第5章 ?经验之谈 ? / ?175 5.1 ?架构的选择 ? / ?175 5.2 ?面向协议的编程 ? / ?184 POP VS OOP ? / ?184 POP面试实战题 ? / ?189 5.3 ?App的测试和上架 ? / ?195 测试相关知识 ? / ?195 App Store相关知识 ? / ?201 结束语 ? / ?204 ? 题目目录 给出一个字符串,要求将其按照单词顺行反转 33 类(class)和结构体(struct)有什么区别 81 Swift是面向对象还是函数式的编程语言 83 在Swift中,什么是可选型(Optional) 84 在Swift中,什么是泛型(Generics) 84 说明并比较关键词:Open,Public,Internal,File-private和Private 85 说明并比较关键词:Strong,Weak和Unowned 86 在Swift中,如何理解copy-on-write 87 什么是属性观察(Property Observer) 87 在结构体改成员变量的方法 88 如何用Swift实现或(II)作 89 实现一个函数:输入是任意一个整数,输出为输入的整数 2 89 实现一个函数:求0~100括0和100)中为偶数并且恰好是其他数方的 数字 90 什么是ARC 91 什么情况下会出现循环引用 92 说明并比较关键词:strong,weak,assign和copy 93 说明并比较关键词:atomatic和nonatomic 94 atomic是百分之百线程的吗 94 说明并比较关键词:_ _weak和_ _block 95 什么是block?它和代理的区别是什么 95 属性声明代码风格考查 96 架构解耦代码考查 97 内存管理语法考查 98 多线程语法考查 99 以scheduledTimerWithTimeInterval的方式触发的timer,在滑动页面上的列表时, timer会暂停,为什么?该如何解决 100 Swift为什么将String,Array和Dictionary设计成值类型 101 如何用Swift将协议(protocol)中的部分方法设计成可选(optional) 102 协议的代码实战 103 在Swift和Objective-C的混合编程项目中,如何在Swift文件中调用 Objective-C文件中定义的方法?如何在Objective-C文件中调用Swift 文件中定义的方法 104 比较Swift和Objective-C中的初始化方法(init)有什么异同 105 比较Swift和Objective-C中的协议(protocol)有什么异同 105 谈谈对Objective-C和Swift动态特性的理解 105 语言特性的代码实战 107 message send如果找不到对象,则会如行后续处理 108 什么是method swizzling 108 Swift和Objective-C的自省(Introspection)有什么不同 109 能否通过Category给已有的类添加属性(property) 110 LLDB中p和po有什么区别 112 Xcode中的Buildtime issues和Runtime issues指什么 113 App启动时间过长,该怎样优化 114 如何用Xcode检测代码中的循环引用 115 怎样解决EXC_BAD_ACCESS 116 如何在Playground中执行异步作 117 在playground中实现一个10行的列表,每行随机显示一个0~100的整数 118 要在UIView上定义一个Label有哪几种方式 119 storyboard/xib和纯代码构建UI相比,有哪些优点和缺点 120 Auto Layout和Frame在UI布局和渲染上有什么区别 121 UIView和CALayer有什么区别 121 说明并比较关键词:frame,bounds和center 122 说明并比较方法:layoutIfNeeded,layoutSubviews和setNeedsLayout 123 说明并比较关键词:Safe Area,SafeAreaLayoutGuide和SafeAreaInsets 123 在iOS中实现动画的方式有几种 124 控制屏幕上的圆形小球,使其向右滑动200个point 125 在iOS开发中,如何保证App的UI在iPhone、iPad及iPad分屏情况下 依然适用 127 如何用drag & drop实现图片能 129 说明并比较关键词:contentView,contentInset,contentSize和contentOffset 131 说明UITableViewCell的重用机制 133 说明并比较协议:UITableViewDataSource和UITableViewDelegate 133 请说明并比较协议:UICollectionViewDataSource,UICollection- ViewDelegate 和UICollectionViewDelegateFlowLayout 133 实现一个10行的列表,每行随机显示一个0~100的整数。用户可以删除、 移动任何一行,下拉列表中的数字重新刷新 134 UICollectionView中的Supplementary Views和Decoration Views分别指什么 137 如果一个列表视图滑动很慢,那么该怎样优化 138 说一说实现预加载的方法 139 如何用UICollectionView实现瀑布流界面 140 说一说HTTP中GET与POST的区别 142 说一说Session和Cookie的概念 142 说明并比较网络通信协议:Ajax Polling,Long Polling,WebSocketr />Sever-Sent Event 143 在一个HTTPS连接的中,输入账号和密码并单击登录按钮后, 到服务器返回这个请求前,这期间经历了什么 143 说明并比较类:URLSessionTask,URLSessionDataTask, URLSessionUploadTask和URLSessionDownloadTask 144 什么是Completion Handler 145 设计一个方法,在给定API的网址的条件下,返回用户数据 146 在iOS开发中,本地消息通知的流程是怎样的 148 说一说在iOS开发中,远程消息推送的原理 149 在iOS开发中,如何实现编码和解码 150 说一说在iOS开发中数据持久化的方案 151 在iOS开发中,对于并发作有哪3种方式 153 比较关键词:Serial,Concurrent,Sync和Async 153 串行队列的代码实战 154 并行队列的代码实战 156 举例说明iOS并发编程中的三大问题 157 竞态条件的代码实战 160 试比较GCD中的方法:dispatch_async,dispatch_after,dispatch_ once 和dispatch_group 162 GCD中全局(global)队列有哪几种优先级 164 试比较Operations中的关键词:Operation,BlockOperation和OperationQueue 164 如何在OperationQueue中取消某个Operation 166 在实际开发中,主线程和其他线程有哪些使用场景 168 说说常开发中用到的设计模式 169 什么是MVC 170 Objective-C和Swift在单例模式的创建上有什么区别 171 什么是装饰模式(Decorator) 171 什么是观察者模式(Observer) 172 什么是备忘录模式(Memento) 174 比较苹果官方的MVC架构的优点和缺点 176 MVC架构的代码实战 177 MVCS中的S为什么要单独拆分出来 179 MVP和MVC有什么异同 179 MVVM中的ViewModel的作用是什么 180 比较MVC、MVP和MVVM这三种架构 181 VIPER之间的各个组件是如何交互的 182 什么是OOP?它在iOS开发中有哪些优点 184 OOP在iOS开发中有哪些缺点 185 POP相比OOP有哪些优势 187 要给一个UIButton增加一个点击后抖动的效果,该怎样实现 189 POP的代码实战 190 Swift实现二分搜索算法 192 一个App崩溃了,可能是什么原因造成的 195 在模拟机上完成所有测试之后,就不需要在真机上行测试了吗 196 为什么在单元测试中引入代码模块要用关键词 197 单元测试的代码实战 197 说一说iOS中的性能测试(performance test) 199 说一说iOS开发中的UI测试 200 如何检查测试覆盖率 200 什么是iOS中的App ID 201 什么是iOS中的Code Signing 202 什么是iOS中的App Thinning 202 向App Store提交App时有哪些原因可能被拒 203 |
编辑推荐 | |
√ 117道以上IT大厂面试题 √ 详解iOS大厂技术人员所关注和重视的技术点 √ 不仅是面试指南,也是构建iOS知识体系的基本框架 √ 在一问一答间,融入作者对问题本质的深刻理解和多年工作经验的沉淀 √ 硅谷iOS工程师、iOS开发者为你详解硅谷、Google、Facebook、BAT等知名IT大厂面试题! |
媒体评论 | |
《iOS面试之道》虽然讲的是iOS和面试,但内容涉及算法基础、工具语言、系统框架、简历和面试准备等丰富而有质量的内容。无论是哪个领域,面试对软件开发工程师来说都是一块好的敲门砖。良好的技术基础和准备充分的简历既可以帮助你打开向上的职业通道,也可以改变你的生活。如果你是一名移动开发工程师,那么建议阅读这本书。 ——极客邦科技总裁,MacTalk作者 池建强 ? ? 本书内容涉及面试前的准备、算法和数据结构、UI设计、并发、网络、设计模式等面试中经常被问到的问题,对iOS新手程序员来说,这是一本不错的书。其中的面试知识也适用于如Google、Facebook等大公司。另外,本书也给出了一个iOS程序员的技能树地图,除应对面试外,只要你沿着这条路径钻研下去,就一定能够开启未来更为广阔的天地。 ?——程序员?陈皓(左耳朵耗子) ? ? 如何面试,面试前需要达到什么样的,是初学者经常问的问题。而一般面试方法都不被当作硬实力,不过这个软实力往往直接决定了你是否被录用,以及薪资如何。可惜,很少有业内的高手愿意在这样的基本问题上发声,所以,故胤道长和唐巧两位高手写的这本书就显得更加珍贵,值得阅读。 ——老iOS程序员 Tinyfool ? ? 本书介绍了iOS面试时需要的知识和全新的面试趋势。第1章对面试的总结让人身临其境,第2章算法基础精彩实用,后面的章节对各个知识点采用问答方式来介绍,问题丰富,有代表性,解答条理清晰,有针对性。这是一本很有价值的书。 ——滴滴iOS技术专家 戴铭 ? ? 本书为iOS程序员面试量身定制,既有关键算法知识的分析,又有全新iOS面试题的解析;对技术难点的讲解深入细致,易于吸收。对正在准备面试的同学来说,是一本难得的好书。 ——iOS杂货铺店主 Peak ? ? 本书的算法基础一章结合Swift语言和函数式编程思想,详细、具体地介绍了iOS开发过程中经常遇到的算法问题,在一问一答间还融入了作者对问题本质的深刻理解和多年工作经验的沉淀,精彩,值得阅读。 ——iOS工程师 念茜 ? ? 作为技术研发人员,*终还是要靠自身实力说话。本书的每一节内容都是作者结合自身的实战经验精雕细琢而成的,简洁而有深度,称得上字字珠玑。本书不仅可以当作面试指南,也可以作为我们的iOS知识体系的基本框架,值得细细研读。 ——*iOS工程师 南大 ? ? 程序员面试经验在网上随处可见,但是内容良莠不齐。如果你是一名iOS程序员,那么本书是不错的选择。本书不仅涵盖简历准备、算法知识等基础,还对面试所需的开发语言、框架和架构都做了分析和答疑,是一本值得面试者阅读的好书。 ?——微信iOS工程师 芒果 ? ? 本书是一本优质的面试指南:融合了简历修改、面试准备、算法基础、函数式编程等当下全新、实用的iOS面试开发内容,并结合作者多年iOS开发工作和开源经验,为读者介绍了iOS开发者应该理解并熟悉的。 ——谷歌iOS工程师 老驴 |