字节跳动iOS三面面经
一面
一、聊聊你的项目(balabala),追问一些细节
二、#计算机网络大礼包
1、网络了解吗?说说5层和7层,以及每层对应的协议
2、你刚刚说到TCP和UDP,聊聊区别
3、TCP三次握手说一下吧、序列号的作用是什么?
4、TCP为什么是三次,两次和四次行不行?
5、你刚刚说5层里有个http,你知道和https的区别吗?(精准到加密过程)
http中get和post的区别。
三、C++大礼包
6、问问C++吧,宏了解吗,讲一讲?写一个宏定义函数,实现返回三个数中最大的
(改进方法,怎么写更简便)
7、const extern static 用法区别
8、static和extern的访问范围,用extern的情况下什么时候程序会报错
9、const修饰指针(const摆在不同位置的区别)存储空间
10、虚函数和纯虚函数用过吗?之间的区别
11、vector的底层和扩容机制,扩容删除后迭代器还能用吗?
12、智力题:三个人分别点了三家外卖,又一个外卖小哥配送,他有多少种配送方式
手撕代码题:
两种方法链表翻转
最大上升子序列
二面
说说你的项目,仔细的追问细节。
操作系统大礼包
1、聊聊进程和线程,最好能结合你刚刚说的项目
2、你刚刚说进程是实现了操作系统的并发、那线程呢?(我回答的是进程内部的并发,显然不太满意)
3、进程中的哪些空间是线程所共有的?
4、你刚刚说到进程的全局变量是共享的,当有多个线程要使用,有什么保护机制吗?
计算机网络大礼包
1.如果我在我的游览器里输入了google,会发生什么,把涉及到的所有网络知识都说一下
(我当时只考虑了正常情况,忘记了我大天朝还有一堵墙。。。好在面试官也没有在意这个,
但是个人觉得如果能回答上来应该是加分项)
2.你刚刚说到http,这是那一层的协议?里面有个get和post,知道吗?
如果我再百度里搜个关键字和远程连接服务器的数据库,分别用的哪种方式?
C++大礼包
1.inline知道吗?说说它的作用。追问:inline在什么情况下都会展开吗?inline在什么时候展开、编译还是运行?
2. 说说栈和堆的区别,从C++程序员角度出发。
3. 如果堆上的资源没有释放,会发生什么?(我回答的内存泄露,追问内存泄露在实际编程中的表现)
智力题:赛马题,网上能搜到
手撕代码:一棵树,从左边看,输出你能看到的结点(我说用层次遍历、队列、哨兵)
面试官语种心长的说,不要太花哨,能实现就行。(真心希望以后遇到的面试官都这样。。)
三面(40分钟)
问了问项目,追问了项目里涉及的操作系统问题。
问了一题智力题:8个杯子,给5个球,每个杯子放一个球,求三个球连续的概率(排列组合知识遗忘+紧张,没做出来。。)
面试官开始缓解尴尬气氛。没了再问专业相关了,开始聊人生,聊理想,聊经历。
面试官人很好,全程笑呵呵,很亲切,我的心里慌一批。