首页 > 笔经面经 > 落魄iOS实习生面经

落魄iOS实习生面经

头像
渣科、
编辑于 2020-05-07 21:08:28 APP内打开
赞 9 | 收藏 9 | 回复4 | 浏览2370

到今天为止春招所有的面试全都面完了,按时间顺序面过这些公司,阿里cbu,人人车,飞猪,蘑菇街,趣头条,网易,百度,美团,京东,字节,收到了满意的offer,跟大家分享一下面经~

字节头条部门

一面(全程iOS)

  • 直接问项目 oc方法调用流程,消息传递以及消息转发流程,动态方法解析,备用接收者,消息转发各个阶段详细问 ,是否会与jspatch冲突.
  • oc 这个类的实例对象占几个字节
@interface TestObject : NSObject

@property (nonatomic, assign) float num;

@end

@implementation TestObject

@end
  • AutoreleasePool的原理和实现,双向链表...下面哪个跟AutoreleasePool有关系
+[UIImage imageWithNamed:]
+[NSArray arrayWithObjects:];
 [[NSObject alloc] init];
  • NSTimer GCDtimer
  • NSTimer对象引用关系,循环引用,如何解决,中间类NSProxy,消息转发
  • 最后是一个设计题,问的很详细,讨论了20分钟,设计一个倒计时功能tableview有100条cell,每个cell展示一个倒计时60->0秒, label展示剩余时间,每秒更新一次,为0时停止更新

二面

  • 为什么学iOS
  • 介绍一下项目
  • 如何进行系统崩溃拦截
  • 类簇问题,什么时候用类簇,我讲了类簇是抽象工厂模式
  • 什么是抽象工厂模式,为什么用抽象工厂模式,其他设计模式,实现单例模式,单例是否一直存在,如何销毁
  • 观察者模式,如何替代观察者模式
    算法题:一个至多包含 3 种元素的数组,要求一次遍历完成排序,不申请额外的存储空间

百度

一面

  • 算法题:二分查找元素第一次出现的位置,很快写完了,面试官又让优化了一下
  • 算法题:选择排序,很快写完了
  • AutoreleasePool的原理和实现 MRC下需要注意什么
  • 属性修饰符 assign weak 区别,strong,copy
  • tableview cell复用,复用池底层结构,猜的是哈希表,面试官说是二级的哈希表,我想到了关联对象的底层结构也是二级哈希表,说了一下
  • category和extension的区别 讲了挺多,面试官说可以了

二面

二面是个女安卓面试官,基本全程都是我在讲(感觉女面试官还是比较好对付)

  • 算法题 非递归实现快排
  • 除了oc 还会什么语言,我说会点c、c++,她问了几个问题,我回答不是很好
  • 操作系统相关,进程调度,进程通信
  • 讲一下设计模式,我讲了半天,又提了一下SDWebimage的设计模式
  • 讲一下看过的源码,讲了挺长时间SDWebimage

三面

得知二面过了以后,我以为三面是聊天,十分放松,后来看到三面的面试官,就知道有点不对劲,结果被一顿虐

  • 长连接相关,我说http复用tcp..,他说只是理想情况下,实际不行,我说了心跳检测+自动重连,面试官问如何实现心跳检测,面试官也不太满意
  • 发网络请求时如何验证证书,我说我一般用AFN,不太了解,面试官不满意(凉)
  • 数据结构,如何解决哈希冲突
  • 字典的底层数据结构
  • 哪些底层结构是树实现的
    还有一些问题忘记了

更多模拟面试

4条回帖

回帖
加载中...
话题 回帖

相关热帖

笔经面经近期热帖

近期精华帖

热门推荐