【C/C++】【面经】2022 阿里巴巴 面经;(C++ 方向/CTO线)(更新:一面;)

文章目录

一面

手撕+闲聊

  • LRU ;不考虑空间,只考虑时间复杂度;先讲一下怎么实现;(双链表+hash)
  • 我写的都比较乱,面试官叫我封装一下;封装完了,可能是为了封装而封装,缺失了很多效率;(给我讲不要有重复代码的同时,也不要为了封装而封装)
  • 多线程的情况下,你这个lru 该怎么写;(我说最简单的只能进去就加锁,但是锁的粒度太大了,临界区太大了…违背了加锁的原则)他让我后面再去看看该怎么改;
  • 多级cache 的话,lru该怎么设计,多级cache 的话,怎样的一个协作、淘汰的方式,能让cache 的效率更高;(我讲的是,1级cache是具体空间,2级cache 的lru是多个1级cache 的lru 对象或者1级淘汰了的给到2级)

简历+项目闲聊

  • 转行以后都学了什么;(打基础为主)
  • 项目做了几个月;项目的主要功能,难点在哪讲一下;

总结

  • 手撕的时候,围绕cache聊了很久,感觉机组、os 的基础还不能支撑问到的问题;
  • 基础部分并没有展开问,了解了一下项目就结束了;对应部门应该也是做C++ 的,只问了一下怎么学习的就结束了;
上一篇:ubuntu 安装 Cmake(转)


下一篇:LRU缓存机制的两种实现:LInkedHashMap实现、自己构建双链表+HashMap实现