昨天面的今天就挂了,一共俩人,中间进来一个应该是主管,面试体验感官很差
楼主投的岗位是【数据管理/恢复】要求是熟悉STL/Boost库使用,了解操作系统内核编译/文件系统/数据存储/编译器/加解密
(1)项目内存管理中的遇到的问题?
从实模式的内存分配到保护模式,从映射内核空间到fork创建新进程。从我自己的项目到linux,不敢说讲的多细,该讲的都讲了。好,不问,直接下一个环节。
(2)智能指针怎么实现的?使用的时候可能出什么问题?
经典八股
(3)右值引用有什么作用?
经典八股
(4)B+树的特点?
B+树的性质,B+树和B树的区别,添加删除节点的时候什么情况会涉及到与兄弟节点的合并和分裂
(5)B+树用在哪里?
数据库、文件系统
(6)对磁盘的恢复思路是什么?
先卸载磁盘再改为只读,用B+树的数据只存储在叶子节点的特点做。(不知道说的对不对)
(7)连表查询涉及到什么语句?怎么优化?除了ES还有别的办法吗?
这个时候我就感觉不对劲了,我寻思我投的不是C++底层开发吗。但是我还是正常答了,第三个问题在逼问下没答上来,具体的场景就是两个几百万数据的表联查,他说除了es还有别的办法没了。
不好意思,我要是这块会就不会毅然决然的从云智后端实习的时候跑路搞内核了,结果在面内核岗位的时候还是遭逮捕了
(8)用的比较多的设计模式是什么?责任链模式负责解决什么问题?
这块答的雀氏烂,就不丢人现眼了
(9)linux 进程间通信的几种方法?
专门在说消息队列的时候提了一嘴,底层用的红黑树,里面涉及到了内核内存管理的东西巴拉巴拉
坑倒是挖了,面试官不感兴趣哈哈,就没问
(10)线程通信的方法?
全局变量、信号量和锁
(11)网络传输过程中的流程和典型的解决办法?
先讲了网卡从接受数据处理硬中断到软中断的全流程,好,全流程讲了,不问。
然后问我已有客户端的情况和有没有什么典型情况,那我就讲多进程和多线程服务端呗,还讲了可以通过管道通知关闭多进程避免大文件传输无法成功。
(12)http的包头里面有什么东西?
这个真不会,自从走内核网络和数据库都没看过了。
(13)啥时候能来实习?
给我搞懵了好吧,我说来年三月,两个面试官中的那个职级高的明显不高兴。很难评
接下来是反问:
(1)我投递的时候写的是操作系统为什么面试的问题全是数据库和网络?
(2)做数据恢复不会去调用磁盘读写深入内核吗?是以什么形式实现的数据恢复?
最终告诉我我们是调安卓接口的,那我请问你为什么不写自己是移动端app开发工程师。
反问是带着怨气的哈哈哈,记得的就这么些,欢迎评论区沟通交流。