iOS实习面经(字节美团阿里蘑菇街)-创新互联

因为时间很久了,记不住太多,只能把记得的写一写总的来说,美团的面试体验最好,字节的速度最快。
按照时间顺序,蘑菇街一面,阿里一面,字节一面二面,美团一二面,字节三面。

站在用户的角度思考问题,与客户深入沟通,找到浏阳网站设计与浏阳网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广、国际域名空间、雅安服务器托管、企业邮箱。业务覆盖浏阳地区。

蘑菇街

一面

是一个小姐姐面的

  1. 学iOS多久了,为什么学iOS,怎么学的
  2. 进程和线程的区别
  3. weak怎么用,delegate为什么用weak
  4. block与weak,__block怎么用、原理
  5. arc原理,weak的实现原理
  6. 用过category吗,介绍一下,当时这部分还不太懂,我说不能添加property,她说为什么不能添加,我强行解释了一波,她说其实是可以的,但是有些问题,可以回去查一下
  7. 做个题,字符串的全排列,结果没写完,时间不够了(我太菜了
  8. 看到我简历上提到了网络相关的,问我路由器和交换机的区别,我拿了一堆专业名词解释了一波,结果被她打断,其实她想听的是家用什么情况用哪个(我呸!!
  9. 又问,用过抓包工具charles吗,我说没,只用过wireshark,她说,wireshark抓到https的包会看不到内容对吧,但是charles可以,为什么呢,如果要是实在没用过可以换个问题,我想了一下,确实没用过,但是之前看过中间人攻击的原理,就实话实说,猜测应该是XXX原理
    面试完之后看新闻,发现就面试前,github被中间人攻击了,我才应该是面试官看到这个新闻了然后就问我这个问题了

阿里

二面凉,今天刚发感谢信,阿里的速度出奇的慢,投简历之前还以为大公司都会很快,没想到阿里拖的时间真的非常久,一个半月多(可能因为我菜吧

一面聊的还可以,都比较基础

  1. 自我介绍
  2. 算法题,连续子数组的和,有正有负,典型的dp,但我没做出来,我傻了,只做了全正的情况
  3. 两个栈实现队列,容量大小,复杂度,怎么优化
  4. Block的实现,变量的截获等等
  5. ARC是什么,都做了什么
  6. 一些网络基础问题,浏览器输入url后回车的流程
  7. 接上一个,MRC有weak吗,用什么代替,weak是怎么实现的
  8. iOS是怎么学的
  9. Bounds和frame的区别
    大概就记得这些了

二面真的就是虐我

  1. 自我介绍
  2. 问我为什么笔试的时候用java不用oc,平常都不用oc怎么能熟练(然后开始批评我
  3. Java和oc的垃圾回收机制
  4. 做个题 leetcode27二叉树的镜像
  5. 红黑树的实现(这个是真不会
  6. 职业规划(我还没职业呢我怎么规划
    然后说没其他问题了,这时候才二十分钟多一点,心里就已经知道要凉了
    然后今天

字节

找了一个做iOS的学长内推,两点发过去简历,五点半就打电话约面试了,每次面试都是离面试结束应该也就三四个小时就打电话约下一面了

一面

  1. 自我介绍,block的实现、变量截获,有个forwarding指针是干什么的
  2. Category能添加什么,原理,为什么能添加property不能添加ivar
  3. 用gcd怎么实现线程安全(barrier)
  4. Oc中的方法调用
  5. 一些网络问题,很基础,tcpudp区别,https原理,http2.0
  6. 内存对齐的原因
  7. 算法题O(1)的复杂度删除链表节点,剑指上有,做过又忘了,以为要遍历,怎么想也做不到O(1),结果我理解错了,会给节点地址
    最后问小哥我是不是凉了,他说我没凉,入职后还没跟小哥面基

二面

二面是一个非常严肃的老哥,面得我真的是心态爆炸,问啥啥不会,最后竟然还过了,记住的问题不多,可能是不想回忆痛苦

  1. 上来就问我啥语言比较擅长,我说java……老哥愣住了,问我c++呢,我说学过,忘的差不多了,他说,c呢,我说还凑合吧,然后就开始虐我
  2. strlen()和sizeof()作用于一个字符串时的区别
  3. 还有一些其他的c的问题,记不住了
  4. 进程线程区别
    …………记不住了
    最后又问老哥,我是不是凉了,老哥终于笑了,说 你要对自己有信心。
    面试完在家吃午饭,难受得我都没吃好,下午面美团的时候hr又打电话约三面

三面

三面就是我现在的leader,人很好,也很年轻,抓问题一针见血
问了不少问题,基本都忘了
java的gc,cookie和session的区别等等
老哥看我看的透透的,不愧是leader,说我都是停留在用的层面上,没有去究其原理,动手能力应该还可以,但是理论需要加强(操作系统等等),跟我说看面经背答案啥的没用,还是得去系统的学,去动手

美团

面经是我录了音然后整理出来的,问题应该都没有漏掉

一面

  1. property修饰符以及作用
  2. 接1,atomic和nonatomic的锁原理,目的,举一个用atomic的例子
  3. 接1,weak的实现原理,weak表的key-value分别是什么
  4. 接1,copy的使用场景,使用的条件,如果没有重写copyWithZone会怎样
  5. 消息发送的机制,方法调用的过程
  6. kvc的使用,kvo的使用、原理
  7. Category能不能添加属性,为什么。添加属性和method实现的原理
  8. 接7,ios8编译的app能在ios10(或其他)上运行,如果NSObject修改了,为什么还能正常运行。
  9. Xcode中按下运行按钮到App打开,整个的过程,编译过程每一步的产物
  10. 浏览器输入URL按下回车后的整个过程
  11. DNS哪一层的协议,用TCP还是UDP
  12. 接11,TCP和UDP的区别
  13. 三次握手的过程,过程中协商了什么;四次挥手过程,为什么握手三次挥手四次
  14. 为什么要有虚拟内存,为什么分段和分页
  15. 进程线程的区别,进程之间线程之间内存隔离吗
  16. 接15,进程间通信的方式,使用过哪些,socket编程用过吗
  17. 学习iOS过程中的难点,怎么学的
  18. 点击事件的响应过程了解吗
  19. 写个题,遍历子view,奇数偶数层分别染色,分别用递归迭代,我递归用了一个参数来标识奇数偶数层,问能不能优化掉
  20. 思维题,十个物品,九个100g,一个90g,只有一个天平,用最少次数找出这一筐;再加一个条件,如果可以使用任意质量的砝码,如何优化。
  21. 你有什么问题

十几分钟后二面

二面

  1. OC比起C增加了什么,有哪些东西依赖runtime或者是由runtime实现的
  2. 接1,提醒我还有面向对象的这部分,面向对象的三个特性,那么是怎么实现的怎么构建起来的,我回答了对象类对象metaclass的相对的结构
  3. 接2,对象的ivar的存在哪,是根据什么生成的,类对象有ivar吗
  4. 看过哪些OC的源码,直接看的源码还是对照一些文章,都在哪找这些文章,看过什么OC的书,语法是怎么学的,接触OC的时间
  5. iOS和Android的App不能通用,分析一下为什么
  6. 了解过什么跨平台的技术
  7. 做个题,F()有0.3的概率返回0,0.7的概率返回1,设计一个函数G(),只能使用F(),使G()等概率返回0和1
  8. 接7,只能使用F()和G()设计一个函数,等概率返回[0, 1000]的整数
  9. 进程的内存空间,分别存什么
  10. 接9,函数调用的时候为什么要把寄存器的值压入栈,都有哪些要压进去
  11. 进程和线程,区别,分别有什么资源,进程切换的过程
  12. 这学期课多吗,都有啥,实习的话什么时候可以来,考研吗,为什么
  13. 闲聊~~

推荐????:
如果你想一起进阶,不妨添加一下交流群 1012951431

面试题资料或者相关学习资料都在群文件中 进群即可下载!

iOS实习面经(字节美团阿里蘑菇街)
网页题目:iOS实习面经(字节美团阿里蘑菇街)-创新互联
分享路径:http://scyanting.com/article/dpjjdc.html