记一次头条面试经历
我是想到手offer以后再发面经的,但是当时心里默念许愿时就是说最后过了就发面经,所以还是现在发吧,顺便攒攒运气。
1面:
首先自我介绍。
问了一个算法问题,二叉树的层次遍历,第一层从左到右输出下一层从右到左输出。
然后问你为什么想搞ios,平时都用什么语言(swift,OC)
你在上一个公司写了什么,
swift的结构体和类有什么区别,
swift结构体支持多态吗,
swift,protocol有什么其他语言没有的特性,
swift,weak在哪使用,
swift,protocol有个默认实现知道吗,
swift,解包
ios点击屏幕后响应流程(刚开始没搞懂面试官想问什么,就答了个从uiwindow向上层响应,其实想问知道hitTest吗)
rxswift,有哪两个特性
rxswift,disposebag为什么在controller释放后就被释放了,
rxswift,的各类函数作用(map,flatmap,zip,merge等)
rxswift,map,flatmap区别
swift,map,flatmap区别
怎么理解mvvm
2面:
自我介绍。
swift,解包
给一个算法,找出一个uiview下的所有uiimageview或他的子类(kindofclass, 或者if/guard解包)
接着上一个找出每个subviews里uiimageview或他的子类
计算机里内存是怎么管理的(说这道答对就让你过,奈何不是计算机专业的,完全无解)
快排是怎么排的,时间复杂度
为什么快排会快,
什么时候用快排(当时我懵逼了,要是当时他问什么时候不用快排我就知道他想问什么了),为什么快排都这么快了还需要其他排序方法(应该是接上一个问题)
第三题用非递归怎么写
接下来就有点懵了,log(2)1000口算是多少,一天有多少秒口算出来,平时看什么书
二面完了以后整个人都不好了,打包准备回学校时上个厕所告诉我二面过了
3面:
为什么搞ios
用什么布局
masonry布局一个类似collectionview出来,
使用过哪些三方库
sdwebimage在用到cell上应该注意什么(reuse的时候会出问题)
设计一个搜索的一套,从数据格式的角度,ui的角度,接口名的角度考虑
怎么防止controller过于庞大
mvc的各个东西指什么
mvvm和mvc区别
mvvm中controller是什么角色
https是怎么实现的(之前只知道加了个ssl,ssl就只知道个名字而已,后来查了,这个设计真的很巧妙, http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html?utm_source=tuicool&utm_medium=referral 这篇博客很详细)
http,get,post区别(背下来http报文格式就很好答上来)
http,安全问题,比如注入攻击
http是哪一层,
http,header有哪些(其它可以不答,但是,HOST必须答)
content-type有哪些
设计模式知道几个
平时看什么书,
等了一个星期,告知答得还可以,但要加一面, (当时就 bilibili dog,最近做毕设没有怎么写过ios代码)
4面面试官特别和蔼,要不是他拿着一个笔记本上面按键都打油了,我都不相信他是搞代码的:
他进来时纸都没带,当时我就知道这个可能就水水而已啦,谁料到,大神想问题时都不需要纸的
为什么想搞ios
mfc,qt,ios响应机制有什么不同(只知道ios)
oc中为什么叫消息传递,而不叫函数(这个当时听到这个问题就知道肯定答不上来就没怎么想,话说我叫他函数也可以啊,后来回去的路上想了一下这应该和oc动态特性有关,传递的值在运行时才通过isa检查类型,但python也是运行时检查类型但他的‘函数’也叫函数啊)
sdwebimage实现
继续上一个问题,sdwebimage缓存图片的名字该怎么取。。。
继续上一个问题,sdwebimage超过容量后删除图片应该怎么删除(话说ns***不是会自动处理吗)
LRU实现,(非计算机专业的想LRU是什么都想了半天,这应该是这场面试能答但是答得最不好的一个)
然后就。。。没问题了?那你还有什么问题?
4面结束时才过了20多分钟,觉得肯定凉了,感觉好像又要到水果摊见的感觉。
晚上抱着试试看的心态给hr打电话问情况,她说你加面是过了的,会一到两周之内给出offer的流程
不,现在想想,我连名字都没告诉hr她怎么知道是我,还说我过了?
写下面经攒攒运气,希望hr说的是真的,最近游戏也不抽卡了,要是太欧把运气都花在游戏上就不好了
完。。。。