小米 C/C++开发 深圳一面、二面面经
8.28投递
9.1 19点笔试
9.7 15点 一面
45min
自我介绍
项目介绍
深挖项目
C++的内存管理,内存里面栈和堆的区别
static修饰变量和函数有什么用
C++的struct和class的区别是什么
多线程和多进程的理解,
线程同步,自旋锁和互斥锁,信号量
什么是死锁,如何避免死锁
没有手撕代码
反问:部门主要是做什么的?面试官说主要是用C语言开发,Linux驱动方面的
面试体验还可以,但是有莫名感觉会凉
9.17 二面
45min
C++虚函数
问操作系统
进程与线程
为什么有了进程还需要线程
知道协程吗
进程间的通信方式,每个方式比较一下
线程间的通信方式,为什么线程间通信不需要进程间那样通过管道之类的方法?
线程间的同步方式
如果加了互斥锁,那么另一个线程访问到加了互斥锁的资源,会怎么样?还有没有CPU?为什么?(掌握不牢,磕磕巴巴)
死锁是什么?死锁的条件?
什么是虚拟内存?为什么需要虚拟内存?有了虚拟内存就一定可以实现内存隔离吗?一个进程就一定不能通过指针误操作导致影响其他进程的数据吗?虚拟内存的页面置换是通过什么实现的?(被问麻了)
socket编程相关:select,poll和epoll
此外还针对我的回答问了好多为什么?不停地深挖,难顶
最后面试官表示我是学通信的,掌握成这样已经可以了😅
小米的C++面试特别注重操作系统的概念理解
9.23收到HR电话,告知了薪资情况,说是要月底给答复。
9.30 拒了
😅#小米##面经##秋招##C/C++##校招#