一面 (1h30min)
-
自我介绍
-
什么时候接触iOS开发,学习路径
-
属性修饰符,nonnull这些也问了,strong,weak的区别,copy
-
strong和copy一样吗
-
assign的语义,答的和weak的区别
-
weak是怎么实现的,有没有性能问题
-
一个局部变量是什么时候释放的,autorelease什么时候释放
-
pod对应的产物是什么,自己有没有编写过library
-
程序到可执行文件的过程,链接过程都干了啥
-
静态库和动态库各自的好处
-
响应者链条,一个view不响应的原因,以及为什么
-
hitTest和pointInside的关系
-
叠在一起的两个view,哪个会响应,如果不想让上面的view响应,怎么解决?如果两个view都要响应,怎么做
-
GCD介绍下
-
iOS有哪些多线程的方法(四种)
-
项目中哪一块用到了GCD
-
dispatch的问题,会输出什么
NSLog(@"1");
dispatch_async(dispatch_get_main_queue(), ^{ // 如果把这里改成globalQueue,又会输出什么
NSLog(@"2");
}
NSLog(@"3");
-
线程和队列的关系
-
自旋锁和互斥锁的区别
-
锁和信号量的关系
-
信号量有什么功能是锁做不到的
-
项目中有没有用过锁,锁有哪些
-
在整个面试的过程中,可能会用到哪些协议,都在哪几层
-
为什么视频会议用UDP
-
如果用TCP实现音视频,需要建立几次连接
-
用UDP实现音视频,有什么方法可以保证通话质量
-
DNS为什么用UDP,为什么不用TCP
-
HTTP和HTTPS的区别
-
HTTPS用到哪些加密算法
-
HTTPS的建立过程
-
两个算法题,一个是给定两个整数数组A和B,A只比B多一个元素,其它元素都一样,找出多的那个元素;另一个是两个UIView找到第一个公共父View
-
反问环节
二面 (1h)
-
一个图片在计算机中是怎么存储的,占多大内存
-
如果发现微信和qq都可以正常使用,但是浏览器网页打不开,可能是什么原因,有什么排查的办法
-
DNS解析的过程
-
HTTPS和HTTP的区别,用了哪些加密技术
-
HTTPS比起HTTP有什么缺陷
-
一个文件有哪些属性,怎么获取(文件描述符)
-
用户态和内核态,什么时候用户态会转为内核态
-
进程间的通信方式
-
线程间的通信方式
-
有哪些锁,自旋锁和互斥锁的区别
-
考了一个题目,一个线程打印奇数,一个线程打印偶数,从1-100
-
打印一个View的所有子View,要求分层打印
-
top-k大的数,答快排思想,时间复杂度(O(n))
三面 (1h)
-
聊项目
-
虚拟内存,干嘛用的,有什么作用
-
页表在linux中怎么用的,页式、段式、段页式聊了聊
-
你是怎么理解页表的
-
二级页表是什么
-
一个程序当中的地址是虚拟地址还是物理地址
-
拿到一个虚拟地址后,怎么转成物理地址
-
听没听说过TLB
-
一次寻址过程会访问几次内存
-
MVC介绍一下,会有什么问题
-
model会持有view吗
-
MVC的controller繁琐的问题怎么解决
-
了不了解MVVC,了不了解响应式编程
-
消息机制介绍一下
-
hook一个方法有什么途径
-
TCP和UDP的区别
-
有人认为TCP一定比UDP更快,你怎么认为
-
流量控制和拥塞避免的区别
-
在高宽带、高丢包的情况下,怎么保证TCP的性能
-
什么情况下发送方的滑动窗口会后移
-
算法题,给一个链表,有环的话输出环的入口,没有环输出nullptr
-
反问环节
hr面 (30min)
-
后续规划
-
会不会考虑转正
-
还有哪些公司在流程中
-
其他公司面得怎么样
-
项目是几个人完成的,你主要是什么工作,项目当前的进展
-
项目中挑战最大的点
-
遇到问题一般怎么解决
-
是怎么学习iOS开发的
-
前几次面试的感受
-
其他公司的部门怎么样
-
知不知道我们这边的业务是什么,有什么了解
-
压力比较大的时候是什么
-
保研计划是什么时候开始的,怎么做的
-
怎么平衡学习和科研
-
项目中遇到意见分歧的时候是怎么解决的
-
有什么兴趣爱好
-
你自己能给公司带来什么,有什么优劣
-
实习的目的是什么
-
对字节的印象
-
能不能全勤
-
最早什么时候能来
-
反问
这里也推荐一些面试相关的内容,祝各位网友都能拿到满意offer!
GCD面试要点
block面试要点
Runtime面试要点
RunLoop面试要点
内存管理面试要点
MVC、MVVM面试要点
网络性能优化面试要点
网络编程面试要点
KVC&KVO面试要点
数据存储面试要点
混编技术面试要点
设计模式面试要点
UI面试要点
网友评论