字节客户端 三面凉经
4.16打电话过去问了结果,已经凉了
一面
1.http和tcp关系,网络分为哪几层,http在哪层?为什么分层(不会为什么分层,瞎说的)
2.get、post区别,啥是幂等性
3.tcp、udp属于哪层?谈谈关于这两个的理解(理解我说的是两个的区别)
4.tcp有哪些方式保证可靠,讲下序列号和确认号(讲了三次握手中的确认号、序号,然后面试官问还有呢,不知道了)
5.为什么是三次握手,了解4次挥手吗?为什么是4次,不是一次 ?我客户端发送FIN之后,服务器发送完直接关闭不行吗?(面试官提示什么双工网络和断开连接,可惜我没开窍还是不懂,就解释了全双工是个啥)
6.进程和线程有什么区别?线程死掉和进程死掉有什么关系?(线程死掉,他在的进程死掉了)然后又问了什么没有听懂。进程之间能共享内存吗?了解具体实现方式吗?(不了解)哪些进程共享,哪些线程共享?
7.堆和栈有什么区别?为什么堆有内存碎片,栈没有内存碎片?char *p=(char*)malloc(1);p在哪里?多线程访问堆会有什么问题?(就是临界资源的竞争,然后面试官说你先回答我会有什么问题,不知道)
8.线程的调度算法(我知道进程调度算法,面试官笑了,不知道为啥,然后我就说了进程调度算法)
9.介绍快排和时间复杂度,归并的原理和时间复杂度
10.用两个栈表示一个队列,并且写代码
11.两个升序链表,合成一个降序链表,写代码(写出来后面试官问你为什么要new一个dummy节点,是不是会内存泄露,如何解决,不知道怎么解决。)
求大佬解决:反转链表中一般都要弄个pre节点(ListNode* pre = new ListNode(0) ... return pre;)那这个new出来的怎么解决?
然后面试官说你这个内存管理不太行啊,balabala,后面我听成了我没有二面了,你可以走了
结果10分钟后hr跟我说还有二面,然而二面很惨,一直在掉线,并且面试官问的都没怎么说上来
二面
1.虚函数有什么用?(第一次遇到这种问题,有点头大,说什么用在多态上)
2.析构函数是干什么用的?(第一次遇到,人都傻了,)
3.多继承使用什么(然后掉线)
4.指针和引用的区别,他们各自使用场景(瞎鸡儿说使用场景,毕竟没有用C++写过代码)
5.static的作用
6.其他文件也要访问修改,(使用extern来声明)
7.写代码 树的最大路径 想了半天不会做,想放弃了,然后面试官好心的给我换了道题目
换成了输入一个float 数和int 的n 保留float 小数点后n位
写完后,面试官让我自己测一下,然后我改了改就差不多了,最后面试官问了你还有哪些没考虑到的,我说n比float小数点后最多的还要多,然后面试官说float为负数怎么办,我说先转化成正的处理,然后再变成负的。
代码写完后网络稳定了
8.进程的死锁,哪4个条件
9.事务有什么用?(头大,,你让我说哪4个也好啊)
10.B树B+树的区别
11.DNS介绍一下
12.https和http的区别,https的原理
三面
怼项目,围绕项目问了一些问题。
然后问了个概率题。
等结果吧,许愿offer。
#字节跳动客户端##字节跳动##C++工程师##校招##面经#