客户端开发面经(iOS方向)

首先说看完的书:
(1)剑指offer(3编,对应牛客网的上的题全部刷完);
(2)面试宝典(C++版)一遍
(3)操作系统(王道的)一遍;
(4)数据结构(高分笔记)一遍;
(5)网络(王道)一遍
(6)Objective-C高级编程一遍;
(7)Effective Objective-C 2.0一遍;
(8)leetcode刷题50道左右(根据面试频率来刷)(后期笔试较多,没坚持);
(9)自己整理的材料200多页(4,5遍)
没有来得及看<<TCP/IP详解>>
感悟是:基础和项目都要有,常见数据结构和算法必须会,手写代码溜溜的。大公司侧重基础一点,创业型公司侧重项目。
主要将自己在找工作中遇到的问题(可以回想起来的)进行分享,仅供参考学习。
阿里(内推,5面,已挂)
第一面:简历筛选面试:
研究课题及相关论文情况,是理论还是实践,如何应用于商业,如何设计系统
第二面:
(1)AutoReleasePool的释放时机(原理)
(2)property原理,及关键字介绍,weak和assign的区别
(3)protocol和Category使用property的作用
(4)EXC_BAD_ACCESS错误是什么,如何解决
(5)unrecognized selector异常,消息转发
(6)copy关键字的作用,为什么NSString用copy修饰,还有其他的类型用吗?
(7)ARC机制
(8)多线程GCD,NSOperation
(9)SDWebImage原理
(10)数组和链表的区别
(11)快排和堆排
(12)智力题:跑马问题,25匹马,5个跑道,每个跑道最多跑5匹马,赛多少次可以找出最快的3匹?
三面:
(1)block原理,循环引用问题
(2)block和weak的区别
(3)http请求报文,响应报文结构
(4)TCP和UDP的区别
(6)coreData
(7)项目介绍
(8)热修复,JSPatch原理
(9)cell重用原理
(10)多线程
四面:
(1)项目的创新点
(2)科研项目的创新点
(3)项目中遇到的问题,如何解决
(4)高并发如何解决
问的挺多的,针对项目来问,深挖
五面:
(1)SDWebImage原理
(2)自己选一个选一个对你影响最大的项目介绍,然后就不断的深挖,问怎么解决。可能没答好,止步于此。
校招笔试直接挂了。

微店(一面挂)
微店是所有面过中,自己感觉问的最难的,可能是自己太水吧。
(1)Autolayout底层实现
(2)UDP解决错误的方法
(3)runtime介绍,用处,以及底层实现
(4)多线程,GCD和NSOperation的区别
(5)内存布局,堆和栈的区别
(6)计算机底层,写一个程序从编译到运行的过程
(7)https握手方式和加密方式,SSL如何实现,为什么说加密了就安全
(8)TCP三次握手和四次挥手,四次挥手的最后一次为什么要等2MSL才可以断开?
(9)设计一个五子棋游戏

网易(内推,已挂)
内推有风险,内推不过,校招笔试3道编程AC,还是笔试挂。网易有道同,内推没过,校招无笔试资格。
一面:
(1)TCP和UDP
(2)https介绍
(3)UDP报错误类型,如何解决
(4)2 sum问题(leetcode第一题)(时空复杂度)
(5)响应链
(7)多线程
(8)GCD如何实现数组的读写(读者写者问题)
(9)MRC和ARC的区别,引用计数判断
(10)如何实现一个按钮上下雪的效果,点击按钮有反应
二面:
(1)MRC引用计数判断,写一段代码,问改对象什么时候返回
(2)求sqrt(x)手写(后来发现leetcode上有,还是看的少)
(3)给定一个数组(乱序),i到n之间的数,现在丢了一个数,找出来。要求时空最优
三面HR面:
(1)对互联网金融的看法
(2)以后那些技术可以对互联网金融有较大的冲击
(3)为什么不投数据挖掘(自己研究生的课题),而想做移动端开发
(4)对本部门的业务知道的有哪些

华为(优招,拿到offer,C++方向)
一面:
(1)c++模板
(2)STL容器有哪些,自己常用的有哪些,底层怎么实现的
(3)虚函数内存布局
(4)二叉排序树的插入算法(手写)
(5)二叉树先序遍历(手写)
(6)堆排序(手写)
(7)常用设计模式,UML图
二面:
(1)工作地点的选择看法
(2)框架是否有了解
(3)对未来的规划

好未来(内推,已挂)
手写两个代码,题目
(1)字符串匹配(可以用KMP),本人写的KMP
(2)O(nlogn)的排序算法,选一个(写的堆排)
一面:
(1)把可以说上来的数据结构说一遍
(2)各类排序算法的比较(内排)
(3)外部排序
(4)二叉树,二叉排序树,二叉平衡树,B树,B+树直接的区别,二叉平衡树使用的场景
(5)虚拟内存技术
(6)对好未来公司的了解

二面:
(1)代码:iOS中如何保存近三次的登录记录
(2)代码:json字符串的解析(多层次){"a":"aa", "b":{"c":"d"}}-->a : aa  b.c : d
(3)ARC的实现
(4)block有几种
(5)runtime
(6)runloop
(7)消息转发
(8)weak和assign的区别
(9)SDWebImage实现原理
(10)AFNetWorking内部结构
(11)内存泄漏检测 instruments工具
(12)@dynamic和@synthesize关键字

京东(校招,等结果)
一面:
(1)runtime
(2)runloop
(3)知道的设计模式有哪些,区别
(4)手写观察者模式(语言任意选)
(5)autoreleasepool实现
(6)CAAnimation和Quartz 2D介绍及使用场景
(7)
二面
(1)项目协作问题
(2)设计象棋游戏


58同城(二面放弃)
一面
(1)链表判断环的入口
(2)怎么判断两个链表是否相交
(3)手写了数组的问题,具体记不清了
二面(时间冲突,直接放弃)

百度(校招,拿到offer)
一面:
(1)__class、__weak、__kindof关键字介绍
(2)知道的所有排序,及其时空复杂度和是否稳定
(3)排序为什么分稳定不稳定
(4)设计一个排序类,你会选用哪种排序算法,为什么?
(5)mvvm和mvc的区别
(6)UITableView数据源为什么是***。而不是直接引用(例如:数组存放)
(7)异常是如何收集的,底层的原理是什么?
二面
(1)手写快排
(2)怎么找出数组中出现两次的数(有两个数出现两次,其他的都是一次)
(3)旋转数组的最小值
(4)O(1)时间复杂度删除单链表结点
(5)约瑟夫环问题推导
(6)O(1)实现取栈的最小
(6)智力题:跑马问题,25匹马,5个跑道,每个跑道最多跑5匹马,赛多少次可以找出最快的3匹?如果找最快的5匹,要赛多少次,怎么赛?
三面(主要考察思维能力)
(1)移动端和pc端各自的优缺点



#阿里巴巴##百度##网易##58集团##iOS工程师##面经##华为#
全部评论
不得不说,楼主面经很有质量,赞一个!唉,可惜我就没面几个
点赞 回复
分享
发布于 2016-10-07 20:19
很有料
点赞 回复
分享
发布于 2016-10-27 23:54
阅文集团
校招火热招聘中
官网直投
这算法考的也太多了吧
点赞 回复
分享
发布于 2017-08-03 13:24
哇塞,谢谢
点赞 回复
分享
发布于 2017-08-11 09:31
emm 你阿里面试的问题挺简单的啊   可惜了
点赞 回复
分享
发布于 2019-11-03 20:19

相关推荐

25 121 评论
分享
牛客网
牛客企业服务