iOS开发面试题分享-记录

一面:

1.首先自我介绍

2.你觉得你在最近做的项目中遇到了什么问题是比较棘手的?

3.知不知道死锁,什么情况下会产生?

4.平常用到那些锁?

5.了解TCP三次握手四次挥手吗?大概是个什么样的流程呢?为什么要三次握手而不是两次,又为什么是四次挥手?

6.runloop了解吗?举一个应用到的例子?

7.https跟http的区别?

8.https的加密协议是什么,加密流程?

9.讲两个你平时用的多的第三方库底层实现框架?

10.讲一下UI事件传递机制?

11.内存泄漏怎么查的平时?

12.性能优化这方面有做过吗?平时怎么优化的?

13.如果有10000个数据,找出里面最大的10个数,你要怎么实现,说出几种方法?

14.http返回对状态码有哪些?


二面:

1.介绍自己

2.平时开发遇到什么困难?怎么解决的?

3.觉得自己做的最好的项目是哪个?

三面:

1.介绍自己

2.你觉得你适合做什么类型的业务,举个例子?

3.说下你开发过程中哪个项目你说最映象深刻的?

4.多线程怎么用,如果有100个任务这个时候多线程应该怎么设计?

5.MVVM框架怎么用?

6.内存管理怎么做?怎么看内存泄漏?

最后呢,面试挂了第三面,面试官问我内存怎么管理的时候我回答是说,现在iOS开发用的ARC的模式,可能较多的出现内存问题的是循环引用的问题,可以用instrument工具可以查到有哪些循环引用的问题,然后开发中也要特别注意一些场景。面试官说不能依赖工具,嗯。。当时我也不知道他想让我回答什么是他心里的答案。还有多线程的问题,我这边回答了经常用的是GCD,然后说了下大概得使用场景,后面他就问那如果是一百个任务同时下载的问题,我说那就不能用GCD了,GCD处理不了这样的,因为这个任务可能有中断的状态,那要用NSOperation,NSOperationQueue来处理,这里我估计没有把整个任务处理的流程框架讲出来,导致他好像不太满意,因为后面他说我没有讲出他想要的更深入的答案。

你可能感兴趣的:(iOS开发面试题分享-记录)