美团、人人网校招iOS工程师面筋分享(详细)
美团网
-
问了简单的排序,快排、冒泡排序;
-
问了一个概率题,1到100w的数字0共出现了多少次,还让我写个验证的测试小程序;
-
问了arc,mvc,设计模式,多线程;
-
问了我的兴趣爱好
-
问NSThread NSOperation dispatch和gcd的关系
来上一个略标准答案:
•NSThread: 优点:NSThread比其他两个轻量级,使用简单 缺点:需要自己管理线程的生命周期、线程同步、加锁、睡眠以及唤醒等。线程同步对数据的加锁会有一定的系统开销
•NSOperation: 不需要关心线程管理,数据同步的事情,可以把精力放在自己需要执行的操作上
NSOperation是面向对象的
•GCD: Grand Central Dispatch是由苹果开发的一个多核编程的解决方案。iOS4.0+才能使用,是替代NSThread,NSOperation的高效和强大的技术
GCD是基于C语言的。
人人网
-
两个大数相加,对一个链表逆序;
-
问画出一个循环引用的关系图;
-
问了我APNs知不知道原理;
-
问ARC的内存泄露会表现在哪些地方
答(1).循环引用A有个属性引用B,B有个属性引用A,如果都是strong参照的话,两个对象都无法释放。这种问题常发生于把delegate声明为strong属性了。
(2).死循环 如果某个ViewController中有无限循环,也会导致即使ViewController对应的view关掉了,ViewController也不能被释放。这种问题常发生于animation处理
5.问软件的架构、功能实现的职责。
#校招##iOS工程师##面经##美团##人人网#