时长:35分钟左右
1. 自我介绍:约5分钟
2. 计算机网络基础
2.1 可以说一下计算机网络中的7层或者5层模型它的具体每一层是负责什么工作吗?
2.2 是否了解过网络抓包?有没有自己去进行抓包?
3. 数据结构与算法
3.1 了解哪些排序算法?
4. iOS基础
4.1 在OC中,如果有一个NSMutableArray属性,然后对其使用copy关键字,会发生什么情况?
4.2 (承接上述问题)既然可能会发生崩溃,那么崩溃的报错是什么?
4.3 如果我现在是NSArray,使用copy关键字,会发生新的拷贝吗?如果不会,在底层是做了一个什么操作呢?(引用计数器加1)
4.4 在OC中给一个对象调用方法,被称为发送消息。那么发送消息的具体过程是什么样的?(runtime消息机制,说完以后,面试官:看来你懂的真的不少啊)
4.5 还是哪个NSArray的问题,如果我现在在NSArray中调用addObject方法,会发生什么?(报错,does not recognize selector)
4.6 在Swift中,怎样控制数组的可变和不可变?(var、let)
5. 开放性问答
5.1 如果让你去继续深入研究iOS,你会选择哪一个具体的方向呢?因为iOS也会细分具体的很多方向,比如界面搭建、业务开发、底层SDK开发等等,你对哪方面更感兴趣?(当然是界面搭建和业务逻辑啦)
5. 反问
5.1 您部门主要负责哪些业务?
5.2 您对于现在iOS的未来发展和趋势有什么看法?另外,对于iOS就业困难的问题,您是如何看待的?
答:任何技术都有一个发展期和瓶颈期。在10几年以前移动互联网发展的很快,这导致了很多的培训机构抓住了商机,培养了一大批学历低、技术浮于表面的、所谓的iOS开发者,他们大量涌入互联网行业中;随着iOS的发展,这些人其实已经被优化的差不多了,因为他们对iOS的理解非常低,没有办法去接受一些高水平的业务开发,这其实是移动互联网尤其是iOS就业困难的一个主要原因。那么最主要的其实还是提升自己的基础能力,这样才能以不变应万变。到最后你会发现,iOS的程序员,他转哪一行都是比较轻松的。
无手撕。