iOS校招面经大杂烩 | 腾讯字节虾皮百度美团等
个人情况
武汉某不知名985本科生,暑期时零基础在字节做iOS开发方向的实习,后续没有转正,投了字节、腾讯、阿里、网易、腾讯音乐、美团、百度、shopee的秋招,均为iOS岗位,由于自己有录音复盘的习惯,记录了这些公司的面经
offer情况
以下未标明凉的都拿了意向,最后选择去了wxg
腾讯音乐 二面凉
9.8 19.00-20.20 一面
两道算法 30min
-
lc142 环形链表II 求环入口公式怎么推导
-
lc743 网络延迟时间 经典Djistra 没做出来
聊项目 20min
iOS
-
APP的生命周期
-
了解什么OC底层原理,说了runtime,类对象,KVC、KVO原理
-
用过方法交换吗
计算机基础
-
进程和线程区别,介绍一下协程
-
虚拟内存机制,虚拟内存有哪些分区,全局变量在哪个区
-
内存抖动了解吗
-
死锁的条件,如何解除和避免死锁
-
并发和并行
-
程序从编译到执行的步骤,其中编译这一步的产物是什么
-
TCP如何保证可靠性,讲讲流量控制,两次握手会有什么问题
9.14 二面 前面问题没答出来,面完秒凉
介绍项目10min
没追问项目细节,只问了两个问题,都答得很不好
-
用到了播放器,了解视频播放的原理吗
-
用了网络请求,让你实现这个库怎么实现
一堆八股
百度
一天面完一二三面 9.12 15.00-17.00
一面
-
聊项目15min
-
进程和线程,进程通信,socket
-
五层网络模型,有哪些协议
-
HTTPS过程,HTTPS握手应该如何优化,HTTPS验证的关键点是什么,Charles抓包是什么原理
-
TCP和UDP
-
算法:快排
二面
项目15min
iOS
-
OC为什么是动态语言,消息发送和消息转发的流程
-
KVO原理
-
MRC的特点,ARC什么时候添加自动计数
-
delegate 有什么优点
-
怎么理解MVC
-
自动布局原理,自动布局好处
-
讲讲C++的多态,OC中的多态如何实现
计算机基础
-
HTTPS,TCP
-
哈希表的结构,哈希表如何解决冲突,其中拉链法如何优化
-
了解哪些锁,讲一讲具体区别,如何设计线程安全的NSMutableArray
-
单例,单例会有什么问题(除了加锁可以解决的),多进程如何保证单实例
-
面向对象特点,面向对象设计原则和思想
-
了解组合吗
-
怎么学习iOS的,如何设计微信聊天界面
算法:atoi
三面
-
聊项目+各种各种个人素质问题,无技术问题
美团 到家
一面 9.10 19.30 记不清了...
二面 9.17 19.30-20.00
-
数组下标查找的原理,NSArray如何实现O(1)查找的
-
状态码304、403遇到过吗
-
GET的body可以放数据吗,POST如何传输数据的
-
如何理解UIWindow,可以有多个UIWindow吗
-
聊项目,遇到了什么难点
腾讯 wxg
录音没录上,只记得一些重点
一面 9.15 19.00-20.00
-
聊项目细节,挖的很深
-
算法lc863 二叉树中所有距离为 K 的结点,20min写完分析复杂度
-
ios中进程和线程如何体现,用过哪些多线程的类和方法
-
看一段GCD代码说输出,同步函数主线程死锁,讲为什么死锁
面委一二面 9.22 20.00-22.30
一面
-
聊项目
-
课内做过印象最深刻,最难的是啥
-
自己平时有钻研什么小技术或者有什么做过的小产品
-
一些八股,OS、C++
-
职业规划
二面
-
聊项目
-
OC和C++的区别
-
一些八股,计网、C++、OC
-
为什么多进程和多线程都需要有,分别是什么场景用
-
平衡二叉树和红黑树的使用场景
-
单核CPU上,设计一个CPU占有率保持50%的程序
-
不动类内的代码,如何从类外访问一个类的私有成员,多说几种方法
-
智力题 3L和5L杯子搞出4L水
shopee
常见八股不说了...记录一些印象比较深的
一面
-
简单讲一讲项目
-
几乎都是八股
-
两个算法:字符串判断等同和LRU
二面
-
自我介绍,没让讲项目
-
讲讲自动释放池的机制
-
为什么数据库的表需要有主键
-
dispatch_async会不会阻塞,会不会开新线程
-
任务C需要在任务AB都完成后执行,GCD有哪些方法,越多越好
-
算法:又是LRU...写完说,一面做过一遍了啊,那再来个快排吧
-
UI卡顿都有哪些原因,越多越好
网易 云音乐
一面
iOS
-
copy修饰符
-
类型检查
-
OC消息发送和转发
-
isa指针
-
delegate如何实现一对多
-
响应者链
-
离屏渲染
计算机基础
-
CPU是如何调度多线程的
-
进程和线程的区别
-
HTTP请求大文件,服务端和客户端可以怎么优化
-
HTTPS原理,抓包的关键,安装了证书仍然乱码是什么原因
-
口述算法:链表找环的入口
二面
-
如何学习OC的,有什么印象深刻的底层原理
-
main里面有一个函数,此函数在目标文件里是怎样的
-
多线程对临界变量进行++,多核和单核的结果概率分布有什么区别
-
HTTP的发展,其中1.1长连接时多个请求串行还是并行,为什么
-
HTTP2.0的多路复用具体是什么
-
用assign修饰可变的集合类,有什么问题
-
block动画是如何实现的
字节 抖音直播
一面
-
项目
-
Xcode有什么监控性能工具
-
UIScrollView如何实现滑动
-
frame和bounds
-
cell复用机制的理解
-
自己设计一个tableview,用什么数据结构实现复用
-
了解哪些锁,有什么区别
-
并行和并发
-
POST和GET
-
HTTPS
-
三次握手
-
管线化、多路复用
-
滑动窗口
-
算法:找链表环入口
二面
-
算法:最大整数
-
读C语言代码说报错和输出
-
寻址方式,淘汰算法
-
MRC、ARC
-
C++智能指针
-
extern函数的原理,在编译还是链接时
-
MVC、MVVM
-
如何实现读写锁
-
UIView和CALayer
-
为什么UI要在主线程
-
一个UI操作到更新到屏幕上经历了哪些
-
GCD了解哪些
-
项目
三面
-
项目
-
tableview
-
委托代理模式的优点
-
了解哪些设计模式,细讲
-
KVO原理
-
怎么实现UI容器类
-
button加上tapgesture,哪个会响应
-
响应者链
-
runloop
阿里
一面 挂
-
项目
-
runtime,消息转发
-
iOS崩溃监测和CPU啥啥了解吗
-
原生与h5交互了解吗
-
VCpush生命周期
-
HTTPS