字节商业化客户端一二三面(求OC)
一面(4.7 60min左右)
常规自我介绍
C++语言基础部分
1.讲一讲重写、重载和覆盖的区别
2.深拷贝与浅拷贝,以及写时拷贝
3.volatile关键字的作用
4.数组和链表的区别
计算机网络部分
1.网络体系结构
2.浏览器中输入一个url发生了什么,用到了哪些协议
3.DNS域名解析过程
4.TCP三次握手和四次挥手
5.为什么握手是三次,而挥手是四次
6.三次握手可能会出现什么问题?如何防范?
7.TCP是如何保证可靠传输的
8.UDP和TCP的区别
9.GET和POST的区别
10.HTTP请求过程
11.什么是HTTPS协议,与HTTP协议有什么区别
操作系统和多线程
1.进程和线程的区别
2.什么时候用多进程?什么时候用多线程
3.进程通信方式
4.死锁是什么?有必要条件?
5.死锁解决办法
6.C++多线程加volatile的错误认识
算法
1.用数组模拟队列
2.反转单词(包含空格,仅交换位置 每个单词内部还是有序的)
二面(4.8 60min左右)
二面八股文很少,大部分都是场景题。
常规自我介绍
C++语言基础部分
1.讲一讲面向对象三大特性
2.讲一讲多态
3.如果子类没有重写父类虚函数,那么虚函数表中的指针是直接指向父类的实现?还是自己复制一个新的实现
4.STL vector的实现机制
5.参数传递方式有哪些?它们有什么区别
计算机网络部分
1.epoll为什么更加高效(从底层来说)
操作系统和多线程
好像没咋问
场景
好像是设计一个app,上传文件到服务器
以及如何尽可能一次上传成功
算法
1、数组模拟队列(不知道为啥也是这个)
2.力扣739:每日问题(不过题目是英文的)
三面(4.11 60min左右)
面试官比较严肃,不像前面两个那样温柔,可能是leader的原因。也基本没问啥八股文
1.下面两个有什么区别,为什么b更快。
int *a = new int[16]; int b[16] = {0}; a[0] = 1; b[0] = 1
2.设计windows的拷贝功能。(拷贝包括内容和格式)
算法:二叉树的非递归后序遍历
然后就是闲聊