iOS移动客户端开发 京东一二面面经 坐标上海

本人是做 iOS 移动客户端方向,已经拿到 爱奇艺 的转正 offer。这几天上海的京东校招也去面了一下,共享一下面试题目:

一面

(自我介绍、实习经历略)谈谈你对 Objective-C 的动态绑定理解?
个人回答方向是从 runtime 机制切入,对所有的 Object、Class 都进行对象化封装,对 clang 对 objc 的结构体改写转换来分析这个问题的。然后引入了 isa 指针和 swizzling method 等相关知识。(故意挖坑,因为自己在这方面比较擅长)
异步网络图片加载的设计思路。
根据 sdwebimage 三方库的源码对其进行分析。尤其是 Category 对于 url 的关联对象、operation 的 hash 表管理、download 方法的***、disk查询方式这三个地方。(面试官是很满意的)
异步网络接口的缓存机制。
这个LZ曾经没有接触过,我只是用白纸画了一个流程图。用更新个人信息的功能为例,切记加入时间戳、考虑有无网络环境、引入 sync 同步性问题即可。
谈谈面向对象的含义
这个问题听到以后出乎意料。我理解成面试官在考察基础知识,便通过面向对象的三大特点来展开描述,并且用 objc和cpp进行解释。并且与面向过程进行对比。(吹水题,不要冷场就好。)

至此一面结束。比较顺利,面试官也比较满意。第二天晚 11 点收到了 21 号的复试通知。

二面

二面的面试官是一个光头,看看有没有同一个面的童鞋。
(没有做自我介绍,直接开问)ARC是什么?objc是如何记录引用计数的。GC机制有无了解。
只要从 isa 的ex_retain 位记录 引用计数加1,并且当引用计数不够时会使用sidetable进行额外记录即可。GC我猜想是考知识面,因为macOS在之前开发中都是使用垃圾回收,而现在苹果放弃了GC在所有开发上的运用,都换做ARC内存管理方式。

(面试官赞赏底层看的比较细,转问算法。由于我有acm经历,可能问题较难)第一题是给定Tag,在一个View中查询所有Tag为给定的View。
抽象成多叉树的深度优先搜索来做

给定一个 UIView 树,保证每一个结点View的Tag都不相同,让查询从rootView到指定Tag的View树上路径。
抽象成对于多叉树的广度优先搜索,利用队列来记录情况即可。

给定一个 UIView 树上的两个结点,搜索最近的父亲结点 View。
可以转换成 LCA 最近公共祖先问题,利用 Tarjan 的离线lca算法。

前两道题直接白纸上写的,最后一道题讲明了思路 dfs + rmq 问题即可做到。面试官很满意。全程面试 38 分钟,他还开玩笑说时间过了就跳过你的提问环节了。。。(好尴尬)

走的时候面试官说最早明天晚上会有hr通知,等消息吧。(虽然到现在仍然是复试中,但是希望运气好转~)

#京东##iOS工程师#
全部评论
同复试中
点赞 回复
分享
发布于 2016-09-22 08:12
我昨天也问了很久跳过了提问
点赞 回复
分享
发布于 2016-09-22 08:13
阿里巴巴
校招火热招聘中
官网直投
想必兄台是 冬瓜争做全栈瓜 吧。你的简书和微博我都有关注。你源码看得很透,理解也很全面,很多博文给了我很多启发。向你学习。
点赞 回复
分享
发布于 2016-09-22 08:24
上海京东 同复试中 感觉面的还不错 等通知吧
点赞 回复
分享
发布于 2016-09-22 08:27
校友来顶,加油!
点赞 回复
分享
发布于 2016-09-22 08:28
学习了,求分享简书链接~
点赞 回复
分享
发布于 2016-09-22 09:00
我也去上海JD面了,两面的面试官应该一样,没想到可以和冬瓜兄一起面试,大写的服气
点赞 回复
分享
发布于 2016-09-22 09:01
你的状态变了吗?
点赞 回复
分享
发布于 2016-09-22 15:41
我跟你一个复试的面试官。他问了我一个问题我不会。。就是在一个RunLoop中突然切换到一个其他的模式,是会重新开一个runloop跑代码。。还是继续跑这一个runloop后面的代码
点赞 回复
分享
发布于 2016-09-23 23:14
还有C语言里面有消息发送吗0.0我答的没有不晓得对不对
点赞 回复
分享
发布于 2016-09-23 23:17
你就是 冬瓜就是全站挂吧  学习
点赞 回复
分享
发布于 2016-09-24 16:46
似曾相识,莫非你是爱奇艺开发者大赛的选手✧(≖ ◡ ≖✿)
点赞 回复
分享
发布于 2017-08-14 15:02

相关推荐

13 37 评论
分享
牛客网
牛客企业服务