整理:iOS开发知识点

iOS学习面试相关问题整理,但愿能巩固本身的基础知识,固然也但愿能帮助更多的开发者。面试

数据结构算法

1.数据结构的存储通常经常使用的有几种?各有什么特色?编程

2.集合结构 线性结构 树形结构 图形结构设计模式

3.单向链表 双向链表 循环链表数组

4.数组和链表区别安全

5.堆、栈和队列性能优化

6.输入一棵二叉树的根结点,求该树的深度?网络

7.输入一课二叉树的根结点,判断该树是否是平衡二叉树?数据结构

算法多线程

1.时间复杂度

2.空间复杂度

3.经常使用的排序算法

4.字符串反转

5.链表反转(头差法)

6.有序数组合并

7.查找第一个只出现一次的字符(Hash查找)

8.查找两个子视图的共同父视图

9.无序数组中的中位数(快排思想)

10.给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。

Foundation

1.nil、NIL、NSNULL 有什么区别?

2.如何实现一个线程安全的 NSMutableArray?

3.atomic 修饰的属性是绝对安全的吗?为何?

4.实现 isEqual 和 hash 方法时要注意什么?

5.id 和 instanceType 有什么区别?

6.self和super的区别

7.@synthesize和@dynamic分别有什么做用?

8.typeof 和 typeof,typeof 的区别?

9.类族

10.struct和class的区别

UIKit

1.UIView 和 CALayer 是什么关系?

2.Bounds 和 Frame 的区别?

3.setNeedsDisplay 和 layoutIfNeeded 二者是什么关系?

4.谈谈对UIResponder的理解

5.loadView的做用?

6.使用 drawRect有什么影响?

7.keyWindow 和 delegate的window有何区别

WebView

1.说一下 JS 和 OC 互相调用的几种方式?

2.在使用 WKWedView 时遇到过哪些问题?

内存管理

1.什么状况使用 weak 关键字,相比 assign 有什么不一样?

2.如何让本身的类用 copy 修饰符?如何重写带 copy 关键字的 setter?

3.@property 的本质是什么?ivar、getter、setter 是如何生成并添加到这个类中的

4.@protocol 和 category 中如何使用 @property

5.简要说一下 @autoreleasePool 的数据结构??

6.BAD_ACCESS在什么状况下出现?

7.使用CADisplayLink、NSTimer有什么注意点?

8.iOS内存分区状况

9.iOS内存管理方式

消息传递的方式

1.KVC实现原理

2.KVO的实现原理

3.如何手动触发KVO方法

4.通知和代理有什么区别

5.block和delegate的区别

6.为何Block用copy关键字

网络

1.网络七层协议

2.Http 和 Https 的区别?Https为何更加安全?

3.HTTPS的链接创建流程

4.解释一下 三次握手 和 四次挥手

5.TCP 和 UDP的区别

6.Cookie和Session

7.DNS是什么

8.DNS解析过程

数据存储

1.iOS 开发中数据持久性有哪几种?

2.FMDB数据结构变化升级

多线程

1.进程与线程

2.什么是多线程?

3.多线程的优势和缺点

4.多线程的 并行 和 并发 有什么区别?

5.iOS中实现多线程的几种方案,各自有什么特色?

6.多个网络请求完成后执行下一步

7.多个网络请求顺序执行后执行下一步

8.异步操做两组数据时, 执行完第一组以后, 才能执行第二组

9.多线程中的死锁?

10.GCD执行原理?

做为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个个人iOS交流群:519832104 无论你是小白仍是大牛欢迎入驻,分享经验,讨论技术,你们一块儿交流学习成长!

另附上一份各好友收集的大厂面试题,须要iOS开发学习资料、面试真题,能够添加iOS开发进阶交流群,进群可自行下载!


动画

1.UIView动画与核心动画的区别?

2.当咱们要作一些基于 CALayer的动画时,有时须要设置layer的锚点来配合动画,这时候咱们须要注意什么?

图像处理

1.图像的压缩方式

2.如何计算图片加载内存中所占的大小

数据安全及加密

1.对称加密和非对称加密的区别?

2.简述 SSL 加密的过程用了哪些加密方法,为什么这么做?

3.iOS的签名机制是怎么样的

Runtime

1.Category 的实现原理?

2.isa指针的理解,对象的isa指针指向哪里?isa指针有哪两种类型?

3.Objective-C 如何实现多重继承?

4.runtime 如何实现 weak 属性?

5.讲一下 OC 的消息机制

6.runtime具体应用

7.runtime如何经过selector找到对应的IMP地址?

8.简述下Objective-C中调用方法的过程

9.load和initialize的区别

10.怎么理解Objective-C是动态运行时语言。

Runloop

1.Runloop 和线程的关系?

2.RunLoop的运行模式

3.runloop内部逻辑?

4.autoreleasePool 在什么时候被释放?

5.GCD 在Runloop中的使用?

6.AFNetworking 中如何运用 Runloop?

7.PerformSelector 的实现原理?

8.PerformSelector:afterDelay:这个方法在子线程中是否起做用?

9.事件响应的过程?

10.手势识别的过程?

11.CADispalyTimer和Timer哪一个更精确

项目架构

1.MVC、MVP、MVVM模式

2.关于RAC你有怎样运用到解决不一样API依赖关系

3.@weakify和咱们宏定义的WeakSelf有什么区别?

4.微服务架构设想。

设计模式

1.iOS有哪些常见的设计模式?

2.单例会有什么弊端?

3.编程中的六大设计原则?

组件化

1.组件化有什么好处?

2.你是如何组件化解耦的?

3.为何CTMediator方案优于基于Router的方案?

4.基于CTMediator的组件化方案,有哪些核心组成?

调试技巧

1.LLDB经常使用的调试命令?

2.断点调试

3.iOS 常见的崩溃类型有哪些?

性能优化

1.形成tableView卡顿的缘由有哪些?

2.如何提高 tableview 的流畅度?

3.APP启动时间应从哪些方面优化?

4.如何下降APP包的大小

5.如何检测离屏渲染与优化

6.平常如何检查内存泄露?

源码理解

1.YYKit

2.SDWebImage加载图片过程

3.YYWebImage和SDWebImage对比

4.AFNetworking 底层原理分析

代码管理

1.SVN与Git优缺点比较

2.Git与SVN的区别

持续集成

1.你在项目中使用过什么持续集成方式?

2.jenkins怎么备份恢复

3.jenkins你都用了哪些插件?

点击此处,当即与iOS大牛交流学习

相关文章
相关标签/搜索