文章目录
一面
手撕+闲聊
- LRU ;不考虑空间,只考虑时间复杂度;先讲一下怎么实现;(双链表+hash)
- 我写的都比较乱,面试官叫我封装一下;封装完了,可能是为了封装而封装,缺失了很多效率;(给我讲不要有重复代码的同时,也不要为了封装而封装)
- 多线程的情况下,你这个lru 该怎么写;(我说最简单的只能进去就加锁,但是锁的粒度太大了,临界区太大了…违背了加锁的原则)他让我后面再去看看该怎么改;
- 多级cache 的话,lru该怎么设计,多级cache 的话,怎样的一个协作、淘汰的方式,能让cache 的效率更高;(我讲的是,1级cache是具体空间,2级cache 的lru是多个1级cache 的lru 对象或者1级淘汰了的给到2级)
简历+项目闲聊
- 转行以后都学了什么;(打基础为主)
- 项目做了几个月;项目的主要功能,难点在哪讲一下;
总结
- 手撕的时候,围绕cache聊了很久,感觉机组、os 的基础还不能支撑问到的问题;
- 基础部分并没有展开问,了解了一下项目就结束了;对应部门应该也是做C++ 的,只问了一下怎么学习的就结束了;