iOS冬招面经,n连跪。。。。。。(反面教材典型)
(前面的几家面试因为隔的太久,回忆起来的不多,各位将就着看orz)
---------------------------------------------------------我是机智的分割线--------------------------------------------------------------------
阿里
内推一面:
1、iOS多线程有哪些实现方式
2、如何多线程下完成一组任务后在执行某个任务(dispatch_group)
3、除了dispatch_group还有哪些方式可以实现
4、类别与类扩展的区别
5、assign,strong,weak,copy,retain...这些的特点和区别,分别在什么场景下使用
6、autolayout
7、项目
内推二面(跪orz):
1、项目(问了好多,但没啥可分享的=_=)
2、iOS中如何考虑安全性(针对项目)
3、抽屉效果如何实现
腾讯
TST内推(简历跪orz)
校招一面(非iOS面试官):
1、iOS如何进行内存管理
2、线程间如何通信
3、线程锁,iOS中automatic形成的互斥锁一定是线程安全的吗
4、撸代码:线性表节点删除
5、撸代码:写个内存管理类,底层只提供1K,2K,4k ,要求实现任意内存的申请,释放。
6、平时玩游戏么,你对游戏怎么看
7、你想过来做游戏么(作死说不想orz)
校招转岗面(跪orz):
1、讲讲CoreText
2、qq中的聊天文字插入qq表情时CTLine会变高,能不能想办法保证所有行高相同
3、多线程
4、讲讲runtime
5、你是如何理解面向对象的
6、讲讲红黑树(。。。)
7、非技术问题,如果你是动物园园长,将会如何管理动物园
百度
校招一面(跪orz):
1、我们从线性表开始,学过哪些线性表
2、数组和链表有哪些区别,插入,删除效率分别怎么样
3、栈有哪些应用
4、学过哪些类型的二叉树
5、这些二叉树有什么特点
6、写个判断AVL树的函数
7、有一个方法可以打印自身的调用次数,在多线程环境下如何写
8、iOS下多线程(GCD,NSThread,NSOperationQueue讲一遍)
9、iOS动画有哪些实现方式
10、CoreAnimation
11、TCP,UDP区别
12、讲讲HTTP协议
13、GET,POST区别
蘑菇街
一面(跪orz):
1、项目
2、UIView和CALayer的区别
3、网络请求的过程发生了什么
4、iOS如何取消一个网络请求
5、树的遍历方式
6、树的搜索方式
7、讲讲设计模式
8、iOS哪些地方实现了观察者模式
9、观察者模式的优点
10、进程与线程的区别
11、线程间通信
12、看过哪些iOS书籍
13、怎么学习iOS
14、看过哪些博客,介绍一篇
去哪儿(霸面)
一面:
1、n个数找最大值时间复杂度
2、n个数找最大最小值时间复杂度
3、时间复杂度能不能降到O(3n/2),如何实现
4、还能在降低时间复杂度吗
5、手撸快排
6、讲讲HTTP协议
7、HTTP是有链接的协议吗(看版本)
8、多线程
9、单核CPU下多线程为何也能提高效率
二面:
1、设计一个计算器,边界如何检测,使用什么数据结构(表达式树),如何设计界面布局(autoLayout)
2、问项目
3、设计一个检索电脑中所有相关txt文件的搜索程序(如何设计数据结构,搜索结果如何排序,如何保证搜索结果正确性,还能怎么优化)
hr面:略
网易:
内推(简历跪orz)
一面:
1、讲讲childViewController
2、childViewController的加载时机
3、viewDidLoad,viewWillAppear,viewWillDisappear这些在childViewController的调用时机
4、memeryWarning时childViewController会如何,parentViewController是否会释放一些childViewController
5、delegate,category,extention,protocol的内容,使用场景
6、oc有没有多继承,如何实现多继承
7、出了添加变量的方法,还能如何实现多继承,要求在头文件可见
8、关联(associated)是什么?怎么使用
9、iOS多线程有哪些方式,分别讲讲
10、这些多线程是基于POSIX的吗
11、dispatch_apply执行某个输出100次,输出是随机的吗
12、NSOperationQueue如何实现串行队列
13、NSOperation中若A依赖于B,A在子线程中,B在主线程,此时[B start]会发生什么
14、NSOperationQueue设置最大并发数后若向其添加超过最大并发数的operation会发生什么
15、automatic,nonautomatic分别有什么作用
16、automatic一定是线程安全吗?(@synchronized()一定线程安全吗?)
17、@property中,copy一般用于什么情况
18、为什么用于NSString,用其他的不行吗?
19、weak和assign的区别
20、runtime
21、runtime消息传递和转发机制
22、消息转发时三个方法的调用时机,是同时调用吗?
23、这三个方法分别有什么作用
二面:
1、项目
2、项目中消息中心阅读状态上报如何处理
3、项目中多个childVC中手势是如何实现的
4、block如何产生循环引用
5、__block与__weak
6、如何将一个类按照属性名:值的方式写入属性列表文件(如何获取属性名(runtime?),NSCoding协议)
7、观察者模式,使用场景
8、拿出网易新闻,首页8个TableView如何实现,尽量减少代码量,如何设计界面代码,如何设计数据存储,如何设计网络请求等
7、CoreAnimation
8、如果没有CoreAnimation你会如何实现动画
9、平时怎么学习iOS
hr面:略
----------------------------------------------------------------------------------------------------------------------------
总结: