wxg 客户端面经
wxg客户端 投晚了,提前批没面完,正式批接着面的 10.12号才oc 整理一下面经发出来
9.14 微信一面
自我介绍
项目
消息转发
mvvm和mvc的区别
是否了解Rac链式编程,只了解一点,简单讲了一下,没用过
项目-tableview滑动优化,渲染原理、卡顿原因
runtime方法调用流程以及消息转发三个阶段优劣
SDWebimage源码 图片解码那部分
设计模式 简单工厂 抽象工厂 单例 ..等
runtime理解 分三部分:
1、方法调用流程
2、objc源码(包括对象本质等)
3、runtime应用(runtime api 、MJExtension 、YYModel)
自己还有什么擅长的 讲一讲
反问
9.15 微信二面 70分钟
聊了会天
项目
消息转发(提到了jspatch、Aspects 原理)
提到了jspatch 又问patch方案设计 说了基于libffi的方案 ,面试官说了汇编实现方案
多个任务执行完后再执行下一个任务用什么 gcd group 底层实现? 信号量
__block 修饰得局部变量为什么可以被修改 局部变量被包装成对象..
scrollview相关一个设计 不会.. 面试官给我讲了一下 其实是一个开源库,让我多看源码
算法题
最长连续序列
最长上升序列
二叉搜索树第3大节点
反问 提前批面不完怎么办 面试官说正式批捞接着面(正式批被
9.24 微信面委会 50分钟
讲项目
Runtime 读过哪部分objc源码,讲一讲细节
实习做了什么 (好像不太满意, 面试官觉得就这?)
在学校有没有研究过什么有意思的东西 讲了自己做的一个测心率的算法 面试官挺感兴趣的,还问为什么没写简历上。。
反问
9.25 微信面委会 二面 75分钟
是个安卓老哥 ,全程聊项目。
Oc语言动态性 runtime是什么 仔细讲解了runtime方法调用流程(包括objc_msgsend汇编实现的那部分)
系统崩溃原理 讲了操作系统层面 又提到kscrash 这样的crash信息收集第三方库的实现原理 函数调用堆栈..等
如何防止崩溃
阅读过哪些源码 讲了一下SDWebimage YYCache 又聊到锁(自旋锁 互斥锁 递归锁)
反问评价 面试官挺满意