iOS一轮面试-2021

OC基础:

1.冷启动的流程:1.mmap主二进制 2.mmap dyld  dyld引导依赖的动态库 fix-up 3.objc runtime (category load等) 4.main函数 5.uikit commit transaction

引申:mmap的实现原理

2.weak的实现原理

3.kvo实现原理

4.load(分类父类子类的调用顺序) initialze 区别

5.category设计模式(拔高题 为什么category不能声明属性 声明属性后会怎么样)为什么categoty的方法会覆盖本类的方法

6.autoreleasepool的实现原理

7.runloop的流程和原理  引申:nstimer ,渲染原理,卡顿监测方案等

8.多线程相关:8.1如何实现a,b完成后 再执行c 8.2锁有哪些8.3递归锁和可重入锁是同一个概念吗?为什么递归锁是可重入的 8.4如何知道已经加过锁 8.5线程安全三要素 8.6 nsoperation main和start的区别 8.7@synchronized的实现原理 8.8 atomic和noatomic的区别 atomic的实现原理 atomic线程安全吗?

9.单例模式:9.1不用dispatch_once实现单例  9.2保证使用其他初始化方法也只能获取到单例

10.copy strong assign weak等修饰符的作用 可变对象 不可变对象的copy的区别 深copy和浅copy的区别 如何实现集合里的对象也能深copy;

11.跨端:javascriptcore如何实现的 oc和js通信 javascriptcore原理

12.离屏渲染哪些属性会导致离屏渲染,如何优化 离屏渲染的本质是什么?

13.为什么不同系统下包的大小不一样

14.消息发送的流程 对象的isa->类的isa->元类isa->root metaclass的isa->root metaclass的isa super的指向?

15.为什么设计UIView 和CAlayer

16.mach-o的结构  crash文件(ips)如何符号化

17.点击事件的传递

18.异步绘制

19.冷热信号

网络:

Https的通信流程 中间人攻击如何防止

Tcp 三次握手 四次挥手 为什么挥手要四次 多路复用

http的缓存策略

网络优化:1.dns解析和缓存 2.减少数据传输量 3,RTT 值

DNS防劫持

三方库:

1.SDWebImage AFNetWorking RAC

设计模式:

1.MVVM MVP MVC

2.DDD模式实践

3.组件化的实现方式有哪些?优缺点是?

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值