iOS求职面试题目搜集<阿里,腾讯,网易>

iOS系统原理:

1.  编译过程做了哪些事情?
2.  字典大致实现原理?
3.  block和函数指针的理解?
4.  block本质是什么?
5.  你了解的UIKit结构?
6.  NStimer准吗?谈谈你的看法?如果不准该怎样实现一个精确的NSTimer?
7.  KVC机制是如何通过key找到value?
8.  runtime如何通过selector找到对应的IMP地址?
9.  runloop内部实现逻辑?
10. 你理解的多线程?
11. GCD执行原理?
12. NSThread,GCD,NSOperation相关的。开启一条线程的方法?线程可以取消吗? 
13. 子线程中调用connection方法,为什么不回调?因为没有加入runloop,执行完任务就销毁了,所以没有回调。
14. autorelease变量什么时候释放?手动添加的是大括号结束的时候释放,系统自动释放是在当前runloop循环结束的时候。 
15. 那子线程中的autorelease变量什么时候释放? 
16. 子线程里面,需要加autoreleasepool吗 
17. GCD和NSOperation的区别? 
18. 项目里面遇到过死锁吗?怎么解决?
19. iOS中后台运行的几种机制 ?
20. 蓝牙的框架,以及蓝牙的类,实现方式。?
21. 离屏渲染问题的本质是什么?
22. 在block里面使用_property会造成循环引用吗?怎么解决?除了使用self->_property,可以使用valueforkey来访问吗  在block里面可以修改它的值吗setvalueforkey?可以修改它的值,可以用valueforkey来解决,显式的的使用self,block外先持有self的弱引用。
23. 说一下runtime?为什么OC里面是发消息,而C/C++是函数调用? 
24. 说下OC发消息的过程 ?
25. 什么是OC对象?union是OC对象吗 block是OC对象吗 ?
26. id是什么类型?是一个指针类型的,可以指向任意OC对象类型的通用对象类型。定义也是结构体。?
27. Viewcontroller的生命周期?
28. 在init方法里面,设置背景颜色,会生效吗 会生效。为什么会?

第三方:

1.  使用了第三方库, 有看他们是怎么实现的吗?
2.  说说你最熟悉的第三方,知晓其原理么?
3.  YYAsyncLayer如何异步绘制?
4.  AsycDisplayKit 原理 ?

性能、内存优化:

1.  遇到tableView卡顿嘛?会造成卡顿的原因大致有哪些?
2.  用过 TableView 吗,平时怎么解决 TableView 滑动卡顿问题的?
3.  app内存你是如何分析的?
4.  介绍下内存的几大区域?
5.  优化你是从哪几方面着手?
6.  APP性能优化:内存泄露检测、卡顿检测,自己做应该怎么做?
7.  内存泄露的几种情况分析;(简历上写的解决了一些内存泄露的问题) ?
8.  解决过的最精彩的crash问题?
9.  自定义一个类,有两个方法,一个是以new开头的,另一个不是以new开发的,方法里面都是alloc init方法,这两个方法有什么不同?引用计数变化?ARC下,编译器会插入什么语句? 
10. ARC和MRC的本质区别是什么?

设计模式:

M、V、C相互通讯规则你知道的有哪些?

系统架构设计:

1.  一般开始做一个项目,你的架构是如何思考的?
2.  介绍一下做过的项目,任务分工,做了哪些工作?介绍工作内容
3.  项目里面的数据存储都用了哪些?知道iOS里面有哪些数据存储方法?什么时候该用哪些方法存储?

网络模型协议数据:

1.  网络模型了解么?有哪几种?说说你的看法?
2.  Https概念,iOS中设置https  ?
3.  HTTP请求过程 ?
4.  在杭州HTTP请求服务器响应快,可能离服务器距离近,而在深圳访问就很慢很慢,会是什么原因?如果用户投诉,怎么分析这个问题? 
5.  HTTP请求的哪些方法用过?什么时候选择get、post、put? 
6.  TCP建立连接的过程,断开连接的过程,为什么是四次握手?
7.  网络相关的:项目里面使用到什么网络库,用过ASIHTTP库吗 ?
8.  断点续传怎么实现?需要设置什么?

动画原理及使用:

Core animation 动画与UIView动画的区别,动画执行过程中是否响应事件?

数据结构算法分析:

1.  强连通分量了解嘛?
2.  二叉树的广度遍历 ?
3.  链表的遍历?
4.  100W数据中找到最大的10W,使用什么数据结构?
5.  数据结构与算法相关。知道哪些数据结构?线性表(具体点  数组)连接、栈、队列、二叉树、堆 ?
6.  iOS中哪里用到栈了?开发过程中哪里用到链表了?栈的特点,链表的特点 
7.  什么是完全二叉树?堆是什么数据结构?
8.  向量和链表的区别?什么时候选择vector?什么时候选择使用链表? 
9.  100个数,找出其中重复的数? 
10. 10个数,找出其中最大数和最小数,没有值相等的?
11. 归并排序的过程 ?
12. 堆排序的过程、快排的过程 ?

编程语言:

1.  swift语言当中defer的含义,guard ?
2.  C++相关的。什么是虚函数?虚函数是怎么实现的?什么是多态?
3.  为什么类的析构函数设置成虚函数?为什么构造函数不设置成虚函数?

调试及Bug:

1.  Crash ,Bug收集 SDK的原理,自己做应该怎么做?
2.  发布出去的版本,怎么收集crash日志?不使用bugly等第三方平台或者这些第三方平台是怎么收集crash日志的?

其他:

1.  你一般学习iOS是如何学习的?
2.  你是如何组件化解耦的?
3.  怎么防止别人反编译你的app?
4.  手势V如何做出来  ?
5.  音视频开发,二维码扫描库  ?
6.  问题:有A B C D E五个类,都要监听登录和注册的通知,发通知给它们五个控制器麻烦,就写了一个单例类,负责发通知,需要接受通知的就实现delegate,因为单例类里面的数组引用了这几个VC,导致不释放,怎么解决?
7.  WWDC2016公布了哪些新特性?对苹果系列的最新特性有关注吗 ?
8.  为什么做iOS开发,不做安卓开发?
9.  如果父类有一个成员变量A,子类有A,B两个变量,父类指针指向了子类,父类执行delete方法,子类的变量会被释放吗?怎么才能被释放?执行子类的delete方法,两个变量会被释放吗?
10. 你最出色的是哪方面?iOS开发,iOS开发的哪一方面?

你可能感兴趣的:(iOS求职面试题目搜集<阿里,腾讯,网易>)