OPPO C++面经
一面:
1. 介绍项目
2. TCP/IP中如何解决粘包问题?如果一直传输数据怎么拆包?
3. 为什么项目中选择TCP传输而不选择UDP?
4. 如果使用TCP希望传输一个复杂的对象应该怎么传输?
5. 讲讲虚函数?什么情况会使用虚函数?虚函数的底层原理清楚吗?构造函数可以是虚函数吗?
6. 是否了解智能指针?为啥会使用弱指针?unique指针与强指针的差别是什么?
7. 对C++的内存回收有了解吗?对安卓的垃圾回收机制有了解吗
8. 讲一讲vector的底层实现?是如何实现不定长数组的?拷贝复制的时候为什么是开辟两倍大小的内存空间?
9. 你刚刚提到会设计模式?讲一讲设计模式的原则?
10. 知道操作系统中代码的局部性吗?三级缓冲了解吗?
11. 前面问的比较简单,后面就开始聊天模式了,讲了一些自己知道的算法。
二面:
二面极其尴尬。。问了我一堆python和深度学习
1. 除了read和write你知道何种形式地读写socket操作?讲了RIO和标准IO
2. TCP报文头部多长?整个报文最长多长?TCP数据包大小 1500 - IP头(20B)- TCP头(20B) = 1460B 这也是最大的MSS
3. 讲解下static的用法?
4. 讲一讲智能指针中的强指针和弱指针?
5. 讲一讲单例模式?(给我指出了一点,不止要让构造函数为私有,拷贝构造函数、赋值函数统统都要写为私有)
6. 如果我在头文件中定义了一个变量会怎么样?(面试官引导了一下,说会引起冲突)
7. git会使用吗?讲讲如何将分支回退一个版本?
8. python了解对吗?python中有析构函数这个概念吗?(这个懵了,没答上来,说了个没有,其实是有的)
9. 你用pandas主要做了哪些工作?
10. python中 __all__代表什么意思?
11. python 中lambda怎么使用?C++中呢?
12. 你学过深度学习吗?知道LSTM吗?(我勉强讲了讲我会的,真的尴尬)
13. 你想做什么方向?后来他和我说他是做算法开发的,部门在上海,问我对这方面有兴趣吗,然后聊天模式开始。前面的面试中无数次想提醒他,大哥,我求你了我面试的是C++啊!!!
三面:
纯谈人生,谈理想,感觉hr面很友好,问了薪资要求,没具体说。