2015和2016面试题

2016-04-05  本文已影响122人  韩七夏

上面的答案都比较“抽象”,下面是我面试iOS程序员的问题列表(私人珍藏),能准确答对一半以上的人非常少(其实这些问题真的不难)。。有兴趣的可以试试。。

1. 什么是arc?(arc是为了解决什么问题诞生的?)

2. 请解释以下keywords的区别: assign vs weak, __block vs __weak

3. __block在arc和非arc下含义一样吗?

4. 使用atomic一定是线程安全的吗?

5. 描述一个你遇到过的retain cycle例子。(别撒谎,你肯定遇到过)

6. +(void)load; +(void)initialize;有什么用处?

7. 为什么其他语言里叫函数调用, objective c里则是给对象发消息(或者谈下对runtime的理解)

8. 什么是method swizzling?

9. UIView和CALayer是啥关系?

10. 如何高性能的给UIImageView加个圆角?(不准说layer.cornerRadius!)

11. 使用drawRect有什么影响?(这个可深可浅,你至少得用过。。)

12. ASIHttpRequest或者SDWebImage里面给UIImageView加载图片的逻辑是什么样的?(把UIImageView放到UITableViewCell里面问更赞)

13. 麻烦你设计个简单的图片内存缓存器(移除策略是一定要说的)

14. 讲讲你用Instrument优化动画性能的经历吧(别问我什么是Instrument)

15. loadView是干嘛用的?

16. viewWillLayoutSubView你总是知道的。。

17. GCD里面有哪几种Queue?你自己建立过串行queue吗?背后的线程模型是什么样的?

18. 用过coredata或者sqlite吗?读写是分线程的吗?遇到过死锁没?咋解决的?

19. http的post和get啥区别?(区别挺多的,麻烦多说点)

20. 我知道你大学毕业过后就没接触过算法数据结构了,但是请你一定告诉我什么是Binary search tree? search的时间复杂度是多少?我很想知道!

技术层面:

1、对面向对象的理解,不好也可以写程序,但是写不好大程序

2、对内存的理解

3、调试的能力

4、调优的能力

产品层面:

1、对基本商业模式的了解

2、对流行产品和产品流行趋势的了解

3、对app store营销基础知识的了解

4、对SNS的了解

我会从以下几个小方面去面试:

1.通用编程技能,例如:一道小算法,数据结构的实现方式,网络,多线程。

2.开发语言,例如:语言特性,重新实现语言提供的功能,是否深入研究过这门语言的某部分。

3.开发平台,例如:该平台的内部消息,内存,线程等机制。

4.工具,例如:调试技巧,是否熟练使用,代码管理工具,项目管理工具,效率工具。

5.行业视角,例如:用什么,知道什么。

6.其他能力,例如:网络上解决问题的能力,是否有持续学习的意识。

有经验的,1-6都会问到,刚毕业的,只要重点面1和6

1.ViewController的生命周期

2.多线程(pthread、NSThread、NSOperation Queue、GCD)

3.动画

4.绘图

5.设计模式( MVC、单例等)

6.Objective-C语言的特征(KVO、Notification、Category等)

7.runtime

8.其他 对新技术的了解、平常怎么提高iOS开发等

1.在ios开发中一个hello world是怎么做的 如果面试者没有答出来怎么装到手机上觉得就是不合格

2.内存管理原理 要问得很深刻 比如 ios 中retain release 都做了什么 自动释放池都做了什么 什么时候自动释放池也会产生内存泄漏

3.o-c如何实现多态性 协议到底是什么和 c++多继承区别

4.使用快捷键和SVN的配置和使用 代码结构 设计模式MVC理解 这个也是为了保证团队合作和开发的效率必要因素

5.调试技巧 如果做性能测试

6.网络传输协议.解XML 等等基础问题

7.平时看什么技术书

对于产品

有没有行业认知 对现在的项目是否认可 能否给出一个好的路线 还有就是需要团队的支持方怎么支持你的工作

上一篇 下一篇

猜你喜欢

热点阅读