秋招提前批滴滴iOS开发(SP)

225 阅读4分钟

秋招提前批的时候,自己膨胀投递的牛客网的SP专场,7.17投递,7.28接到hr电话,约定面试2:00--4:00,因为午休习惯,改成了2:30--4:30。

中午睡的迷迷糊糊起来到图书馆开始面试,等了会,8分钟左右吧,视频电话打过来的是挺年轻的一个前辈,然后就开始悲惨的面试了

  1. 自我介绍
  2. 看你三个项目,挑一个你觉得最能展现你的技术和实力的地方
  3. 根据我挑选的项目,怼我做的缓存层,没有考虑磁盘缓存?怎么不用NSCahe?
  4. 看你缓存是NSDictionary,知道底层原理是什么吗?
  5. 从NSDictionary扯到了HSAH,问我HASH有什么问题,怎么解决?(开放散列法和那种向后推移的查找),解释下开放散列法是什么,还有那个向后推移,扯了下OC中方法缓存列表的查找方式就是这种(当时记不清方法的名字了)
  6. 似乎不想问ios的问题,又开始问基础 进程和线程关系,扯到了锁和死锁
  7. 知道有什么锁吗?悲观锁,乐观锁,互斥锁,自旋锁,逐一的解释下
  8. 互斥锁中具体的是什么,扯到了ios的NSLock,synchronized。。。。(有点力不从心了。。)
  9. 开始问死锁,拿ios举例,解释一下,我没有解释很清楚,搞混了线程和任务,后面让我写代码,我写着代码解释清楚了,意识到之前自己挖的错误坑
  10. 看你之前的项目写过后端,说下SpringMVC的原理(解释了大致原理) ,知道SpringMVC的其他框架吗,知道也说一下,解释一下(内心:我不是专注做后端的,知道有哪些东西,明白前后交互还不够?还跟我扯后端的其他框架?)
  11. HTTP和HTTPS知道吗?有什么区别?SSL加密的内容是什么?
  12. 扯到了对称加密和非对称加密,问RSA原理是什么?知道MD5吗,原理呢?BASE64呢?连续暴击灵魂拷问。。。。。
  13. 看我被怼的说不出来啥了,开始继续问网络,了解TCP和UDP区别吗?中间扯到了三次握手和四次挥手,又解释了。解释下SYN和ACK,没有解释很明白
  14. 了解socket吗(套接字,相当于接口,解释了websocket服务器端的创建流程,建立socket,bind,listen,accept)了解websocket吗?(没写过)
  15. 进行过网络抓包吗?(没用过花瓶,用过chrome自带的开发者工具看过),说下原理(。。。。。。)
  16. 解释下TCP中的报文参数有哪些,分别是干啥的。。。。。我只解释出了大概的参数
  17. 解释下OC语言从开始编译到结束发生什么?(clang前端语法分析,语义分析,生成中间IR,IR中间优化,后端根据不同的架构平台生成不同的运行文件,ios端是macho)
  18. 解释下语法分析和语义分析中做了什么事情?(没有详细学过编译原理课程,只是知道个大概)
  19. 大学期间学了什么课程?
  20. 你学的电子商务,能说下为什么要来做开发吗?
  21. 可能是看我学的课程计算机的少,然后就开始问数据结构和算法,二叉树的反转说下实现思路(本质上是遍历二叉树,在遍历每个节点的时候交换左右子树)再详细的解释一下。。。。。扯到了前中后序遍历,和递归,只能递归遍历吗?(还能迭代,用stack辅助进行遍历)
  22. 说下前中后序遍历的应用的不同场景(打断了解释,让我说应用场景,我就说了比如二叉搜索树进行不同的遍历得到不同的结果,中序遍历能够得到排序的结果)
  23. 看我回答的不是他想要的,说写个简单的算法吧,写个快速排序
  24. 用赛码网的编辑器进行编写(不得不吐槽赛码网的编辑器真难用,没有提示和自动的缩紧,没有自动提示中间有些敲的太快拼错了,吭哧了一会才改好),运行结束
  25. 有什么想问我的吗?(给些以后学习的建议吗)要结合实际,从实际出发,在做的过程中去思考有什么比较好的优化的地方

反思:刚拿了腾讯的口头offer,有点飘了,现在被打回原形🙃。一定要注重发散性的学习和相关的基础性东西,要做到知其然也要知其所以然,在学习过程中一定要注意相关修饰词的表述的准确性。🧐

可能。。。。基础过不了都不配面ios相关的东西吧,哈哈哈🤣