#软件开发2023笔面经# #小米# #23届找工作求助阵地# 面试官上来先介绍了一下岗位,是做自动驾驶的中间件的,然后让我做了个自我介绍。
问我能实习多久,问我研究生都学啥课程。我说了两门操作系统相关,开始了第一题。
1.线程会有自己独立的栈区吗?会有独立的堆区吗?
1.你了解 Linux 虚拟内存空间吗?
2.虚拟内存有什么好处?
3.两个进程 malloc 可能会返回一个值吗?会映射到一个物理地址吗?
4.影响 C++ class 类的大小的因素有哪些?
5.内存对齐会有影响吗?
6.虚函数是怎么实现的?(具体咋问的不太记得了,反正是回答虚函数表底层)
7.析构函数为什么有时候要是虚函数?
8.用过智能指针吗?
9.死锁产生的条件是什么?Cpp 中如何避免死锁?
10.动态库和静态库有什么区别?
11.map 和 unordered_map 有啥区别?
12哈希表怎么处理碰撞问题?最差能退化到什么复杂度?
13TCP 如何保证可靠?
14 接 7 一个类空指针可以调用虚函数吗?可以调用普通函数吗?
代码题 手写生产者消费者模型,我以前没看到过这种设计模式的内容,Cpp 相关库也不会。。。还以为是要自己写 mutex sem 的操作,最后面试官还问我这是原子操作吗,为什么不用 Cpp 的 mutex,我说不会。。。。。
然后给我出了一道二叉树层序遍历,秒了。
然后反问环节。
先回忆这么多,还有的评论区再加。