• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

liberalisman/iOS-InterviewQuestion-collection: iOS 开发者在面试过程中,常见的一 ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

liberalisman/iOS-InterviewQuestion-collection

开源软件地址:

https://github.com/liberalisman/iOS-InterviewQuestion-collection

开源编程语言:

Objective-C 100.0%

开源软件介绍:

iOS-InterviewQuestion-collection(未完待续...)

最近在准备面试,所以自己边复习边整理,列出了一些自己复习的知识点。

后面的一些知识模块之所以没有延展开,是因为有的地方自己理解的还不到位,我还需要时间仔细整理。

这个仓库根据我的设想,我认为还远远没有完成,后续会不断更新,起初并不想写答案,但考虑到有的人需要,其次我自己写一个很简单的思路,起一个提示的作用,如果有想错的地方,也欢迎大家指正。

再次说明:所有的答案只写思路,不会长篇大论的验证,只起到提示作用。

欢迎大家提 PR!!!

推荐书目

  • 1.《Effective Objective-C 2.0》- 读书笔记(进行中)
  • 2.《Objective-C 高级编程》
  • 3.《程序员的自我修养》
  • 4.《图解HTTP》
  • 5.《高性能iOS应用开发》
  • 6.《算法图解》
  • 7.《剑指Offer》

数据结构及算法

数据结构

算法

常见概念
  • 时间复杂度
  • 空间复杂度
常见的摘要算法:
  • HEX编码
  • Base64
  • MD5
  • SHA1
  • SHA256
  • MAC算法
常见对称加密算法
  • AES
  • DES
  • 3DES
  • Blowfish
常见的排序算法
  • 快速排序 - 链接
  • 堆排序
  • 冒泡排序 - 链接
  • 选择排序 - 链接
  • 希尔排序
  • 归并排序
常见的字符编码方法
  • 1.ASCII
  • 2.ISO-8859-1
  • 3.GB2312
  • 4.GBK
  • 5.UTF-8
  • 6.UTF-16
  • 7.Unicode

推荐一个很好的算法总结 - 链接

常考算法题
  • 1.字符串反转 - 链接
  • 2.链表反转 - 链接
  • 3.有序数组合并 - 链接
  • 4.查找第一个只出现一次的字符 - 链接
  • 5.查找两个子视图的共同父视图 - 链接
  • 6.无序数组中的中位数 - 链接
  • 7.两数之和为特定值 - 链接
  • 8.求出数组中连续数字的和值 - 链接
  • 9.白鼠与毒酒的算法问题 - 链接
  • 10.在一个数组中找出前四个最大的数字。- 链接
  • 11.假如有 10亿 条数据,每条数据的大小在 10k-100k 之间,我们有一台内存为 4G 的电脑,如何算出播放次数最多的一条微博?
  • 12.如何打印一个矩阵?
  • 13.如何验证一个 IP 地址的有效性?
  • 14.栈中储存着一组无序的数字,不用遍历的方式,如何找出最小值?
  • 15.二维数组查找一个值。

iOS 内存管理

  • 1.讲一下 iOS 内存管理的理解?(三种方案的结合) - 链接
  • 2.使用自动引用计(ARC)数应该遵循的原则? - 链接
  • 3.ARC 自动内存管理的原则? - 链接
  • 4.访问 __weak 修饰的变量,是否已经被注册在了 @autoreleasePool 中?为什么? - 链接
  • 5.ARCretainCount 怎么存储的? - 链接
  • 6.简要说一下 @autoreleasePool 的数据结构? - 链接
  • 7.__weak_Unsafe_Unretain 的区别? - 链接
  • 8.为什么已经有了 ARC ,但还是需要 @AutoreleasePool 的存在? - 链接
  • 9.__weak 属性修饰的变量,如何实现在变量没有强引用后自动置为 nil? - 链接
  • 10.说一下对 retain,copy,assign,weak,_Unsafe_Unretain 关键字的理解。 - 链接
  • 11.ARC 在编译时做了哪些工作? - 链接
  • 12.ARC 在运行时做了哪些工作? - 链接
  • 13.函数返回一个对象时,会对对象 autorelease 么?为什么? - 链接
  • 14.说一下什么是 悬垂指针?什么是 野指针? - 链接
  • 15.内存管理默认的关键字是什么? - 链接
  • 16.内存中的5大区分别是什么? - 链接
  • 17.是否了解 深拷贝浅拷贝 的概念,集合类深拷贝如何实现? - 链接
  • 18.BAD_ACCESS 在什么情况下出现? - 链接
  • 19.讲一下 @dynamic 关键字?- 链接
  • 20.@autoreleasrPool 的释放时机?- 链接
  • 21.retainrelease 的实现机制?- 链接
  • 22.能不能简述一下 Dealloc 的实现机制?- 链接
  • 23.在 MRC 下如何重写属性的 SetterGetter? - 链接
  • 24.在 Obj-C 中,如何检测内存泄漏?你知道哪些方式? - 链接

Runtime

  • 实例对象的数据结构?- 链接
  • 类对象的数据结构?- 链接
  • 元类对象的数据结构? - 链接
  • Obj-C 对象、类的本质是通过什么数据结构实现的? - 链接
  • Obj-C 中的类信息存放在哪里? - 链接
  • 一个 NSObject 对象占用多少内存空间?- 链接
  • 说一下对 class_rw_t 结构体的理解?- 链接
  • 说一下对 class_ro_t 的理解?- 链接
  • Category 的实现原理? - 链接
  • 如何给 Category 添加属性?关联对象以什么形式进行存储? - 链接
  • Category 有哪些用途? - 链接
  • Category 和 Class Extension 有什么区别?- 链接
  • Category 可不可以添加实例对象?为什么? - 链接
  • Category 在编译过后,是在什么时机与原有的类合并到一起的? - 链接
  • 说一下 Method Swizzling? 说一下在实际开发中你在什么场景下使用过? - 链接
  • Runtime 如何实现动态添加方法和属性? - 链接
  • 说一下对 isa 指针的理解,对象的 isa 指针指向哪里? isa 指针有哪两种类型?(注意区分不同对象) - 链接
  • 说一下 Runtime 消息解析。- 链接
  • 说一下 Runtime 消息转发。- 链接
  • 如何运用 Runtime 字典转模型?- 链接
  • 如何运用 Runtime 进行模型的归解档?- 链接
  • 在 Obj-C 中为什么叫发消息而不叫函数调用?- 链接
  • 说一下 Runtime 的方法缓存?存储的形式、数据结构以及查找的过程?- 链接
  • 是否了解 Type Encoding? - 链接
  • Objective-C 如何实现多重继承? - 链接

Runloop

  • 1.Runloop 和线程的关系? - 链接
  • 2.讲一下 RunloopMode?(越详细越好) - 链接
  • 3.讲一下 Observer ?(Mode中的重点) - 链接
  • 4.讲一下 Runloop 的内部实现逻辑?(运行过程) - 链接
  • 5.你所知的哪些三方框架使用了 Runloop?(AFNetworking、Texture 等)
  • 6.autoreleasePool 在何时被释放? - 链接
  • 7.解释一下 事件响应 的过程? - 链接
  • 8.解释一下 手势识别 的过程? - 链接
  • 9.解释一下 GCDRunloop 中的使用? - 链接
  • 10.解释一下 NSTimer,以及 NSTimer 的循环引用。 - 链接
  • 11.AFNetworking 中如何运用 Runloop? - 链接
  • 12.PerformSelector 的实现原理?- 链接
  • 13.利用 runloop 解释一下页面的渲染的过程?- 链接
  • 14.如何使用 Runloop 实现一个常驻线程?这种线程一般有什么作用?- 链接
  • 15.为什么 NSTimer 有时候不好使?(不同类型的Mode)- 链接
  • 16.PerformSelector:afterDelay:这个方法在子线程中是否起作用?为什么?怎么解决?- 链接
  • 17.什么是异步绘制?- 链接
  • 18.如何检测 App 运行过程中是否卡顿?

UIKit

  • 1.UIViewCALayer 是什么关系?- 链接
  • 2.BoundsFrame 的区别? - 链接
  • 3.TableViewCell 如何根据 UILabel 内容长度自动调整高度?
  • 4.LoadView方法了解吗?- 链接
  • 5.UIButton 的父类是什么?UILabel 的父类又是什么?- 链接
  • 6.实现一个控件,可以浮在任意界面的上层并支持拖动?- 链接
  • 7.说一下控制器 View 的生命周期,一旦收到内存警告会如何处理?- 链接
  • 8.如何暂停一个 UIView 中正在播放的动画?暂停后如何恢复?- 链接
  • 9.说一下 UIView 的生命周期?- 链接
  • 10.UIViewController 的生命周期?- 链接
  • 11.如何以通用的方法找到当前显示的ViewController? - 链接
  • 12.setNeedsDisplaylayoutIfNeeded 两者是什么关系?- 链接

Foundation

  • 1.nilNILNSNULL 有什么区别?- 链接
  • 2.如何实现一个线程安全的 NSMutableArray? - 链接
  • 3.如何定义一台 iOS 设备的唯一性? - 链接
  • 4.atomic 修饰的属性是绝对安全的吗?为什么? - 链接
  • 5.实现 isEqualhash 方法时要注意什么?
  • 6.idinstanceType 有什么区别?- 链接
  • 7.简述事件传递、事件响应机制。- 链接
  • 8.说一下对 Super 关键字的理解。- 链接
  • 9.了解 逆变协变 吗?- 链接
  • 10.@synthesize@dynamic 分别有什么作用?- 链接
  • 11.Obj-C 中的反射机制了解吗?- 链接
  • 12.typeof__typeof__typeof__ 的区别? - 链接
  • 13.如何判断一个文件在沙盒中是否存在?
  • 14.头文件导入的方式? - 链接
  • 15.如何将 Obj-C 代码改变为 C++/C 的代码?- 链接
  • 16.知不知道在哪里下载苹果的源代码?- 链接
  • 17.objc_getClass()object_getClass()Class 这三个方法用来获取类对象有什么不同?

网络

  • 1.NSUrlConnect相关知识。
  • 2.NSUrlSession相关知识。
  • 3.HttpHttps 的区别?为什么更加安全?- 链接
  • 4.Http的请求方式有哪些?Http 有什么特性?- 链接
  • 5.解释一下 三次握手四次挥手?解释一下为什么是三次握手 又为什么是 四次挥手?- 链接
  • 6.GETPOST 请求的区别?- 链接
  • 7.HTTP 请求报文 和 响应报文的结构?- 链接
  • 8.什么是 Mimetype ? - 链接
  • 9.数据传输的加密过程? - 链接
  • 10.说一下 TCP/IP 五层模型的协议? - 链接
  • 11.说一下 OSI 七层模型的协议? - 链接
  • 12.大文件下载 的功能有什么注意点? - 链接
  • 13.断点续传 功能该怎么实现? - 链接
  • 14.封装一个网络框架有哪些注意点? - 链接
  • 15.WiresharkCharlesPaw 等工具会使用吗?
  • 16.NSUrlProtocol用过吗?用在什么地方了? - 链接
  • 17.如何在测试过程中 MOCK 各种网络环境? - 链接
  • 18.DNS 的解析过程?网络的 DNS 优化。 - 链接
  • 19.Post请求体有哪些格式? - 链接
  • 20.网络请求的状态码都大致代表什么意思?- 链接
  • 21.抓包软件 Charles 的原理是什么?说一下中间人攻击的过程。- 链接
  • 22.如何判断一个请求是否结束?- 链接
  • 23.SSL 传输协议?说一下 SSL 验证过程?- 链接
  • 24.解释一下 Http 的持久连接?- 链接
  • 25.说一下传输控制协议 - TCP ?- 链接
  • 26.说一下用户数据报协议 - UDP ? - 链接
  • 27.谈一谈网络中的 sessioncookie? - 链接
  • 28.发送网络请求的时候,如果带宽 1M,如何针对某些请求,限制其流量?

多线程

  • 1.NSThread相关知识? - 链接
  • 2.GCD 相关知识? - 链接
  • 3.NSOperationNSOperationQueue相关知识? - 链接
  • 4.如何实现线性编程? - 链接
  • 5.说一下 GCD 并发队列实现机制?- 链接
  • 6.NSLock?是否会出现死锁? - 链接
  • 7.NSContion - 链接
  • 8.条件锁 - NSContionLock - 链接
  • 9.递归锁 - NSRecursiveLock - 链接
  • 10.同步锁 - Synchronized(self) {// code} - 链接
  • 11.信号量 - dispatch_semaphore。 - 链接
  • 12.自旋锁 - OSSpinLock 。 - 链接
  • 13.多功能

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
shu223/iOS-9-Sampler: Code examples for the new features of iOS 9.发布时间:2022-06-21
下一篇:
awesome-tips/iOS-Tips: iOS知识小集发布时间:2022-06-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap