bigo 二面面经,我面过最难得,百分之八十都不会答
1. 项目,问完就是千万级秒杀怎么做,分布式的怎么做。 应该是多实例redis分表预减库存, +消息队列?
2.0 比较熟悉什么语言,另一门语言go什么时候用。 c++,go go使用后端框架的时候。
2. c++基础。上来就是一个代码
#include<iostream> using namespace std; class A{ public: int a; void func(int b){ int d; delete this; b = 3; d = 3; a = 3; } }; int main(){ A a; A* pa = new A; pa->func(); //1 a.func(); //2 return 0; }
报错吗,1,2,是哪里报错, 本菜逼只知道使用this 指针去使用A的public 变量 a, 所以在a = 3时出错。后来问了一下 指针去调用函数和实例去调用对象,是不同的。实例去调用在delete this 就已经出错了,说这个变量在栈上。(求解答)
(刚上来这么难,后面会简单吧,但是不会)
3. 网络协议 把你知道的所有协议,在哪一层讲一下,不用细讲。就列举。
4. 切换上下文中, 是怎么实现的, 先保存寄存器的值,然后切换到内核态。 寄存器的值保存在哪里,让我自己胡说我说了PCB指定的内存空间里,然后程序内部切换的时候,也会保存上下文的值,这时候保存在哪里呢。 enmm,我头晕,我分不清程序运行空间了。
5.0(突然想起来的) socket 中 read 或者send(buffer,socket,。。) 这个buffer假设1tb,你什么时候会发送呢,(我:不一定正确:udpsocket 和tcpsocket 应该不一样吧,udp 数据包大小就直接发送,tcp字节流,会一直发送?),会等到buffer满吗,会不会出现不会为满的情况,会不会出现buffer满的情况, 这个buffer是在哪里。
5. extern import 用过吗,enmmm,
6. 很想它出代码题了,前面太难了,o(╥﹏╥)o。代码题 【3, 1, 5】 n =7,7可以由1111111, 133 等序列组成,求所有的可能序列
我说有几种序列,就是完美背包问题。然后这个就是用dfs去做,回溯去做。但是在判断序列是否相同的时候出了问题,(有什么办法可以解决呢) 1,,3,3, 和3, 3, 1是一个序列。set<vector<int>> error 具体要怎么解决看博客哦。
其它的脑子热想不起来了。
最后问了一下为啥这么难,就是要有区分度,看你会多少,了解多少,全都答出来就没有意义了。感觉bigo c++对内存那一块比较感兴趣,问过挺多。
#面经##BIGO##C++工程师##校招#