面过了字节才知道为什么说“字节一年,人间三年”啊......面到后来已经完全不想面了
时长:1个小时40分钟
1. 自我介绍约5分钟
2. 项目问答:约10分钟
3. 计算机网络
3.1 什么是cookie?
3.2 cookie经常用在哪些地方?客户端可以修改cookie吗?如何修改?
3.3 我刚刚写了一个URL,他的域是什么?结合刚刚的cookie,cookie可以实现跨域访问吗?
3.4 GET和POST的定义是什么?区别是什么?
3.5 如果使用的是GET,我不把参数放在URL里,可以放在body里吗?如果放在body中,可以被服务器解析吗?
4. 操作系统
4.1 线程和进程的区别?(反复说我的回答不是非常准,问我书本上是怎么定义的)
4.2 线程同步的目的是什么?
4.3 线程之间有哪些通信方式?
4.4 知道原子操作吗?有哪些原子操作?
4.5 对于多线程进行for循环自加,会出现什么结果?既然结果不确定,那结果的范围是什么?为什么会造成这种结果?(涉及到内存和寄存器的数据不同步,没往这方面想)
4.6 栈和堆有什么区别?反映在内存中地址中的区别是?
4.7 栈和堆,哪个是连续的,哪个是不连续的?为什么堆的访问速度比栈慢?
5. iOS基础
5.1 什么是强制解绑?
5.2 闭包是什么?怎么理解闭包这种结构?
5.3 MVC的优缺点是什么?MVVM呢?在MVVM有一个双向绑定的概念,是什么?
5.4 UIViewController的生命周期有哪些?(willdisappear,diddisappear, didload, willappear, didappear, willloadsubViews....说完以后,面试官:还有呢?.....)
5.5 如果我现在有一个controller类A,有一个controllerB继承自A,那么B的生命周期和A一样吗?controllerA的根类是什么?(问懵了)
6. 手撕,限时15分钟——会议室预约问题,求最少可以预约的会议室房间数,最后要求分析时间和空间复杂度。(我写的代码是复杂度为O(n2)的,问我有没有什么优化思路。我:(完全不想面了)没有思路。)
7. 反问
7.1 部门业务?
7.2 对于iOS发展的看法?
btw: 最好赶紧给我挂了,因为我受不起每次面试这么折磨人.....