小红书一面

岗位是:KVcache/高性能缓存开发

上来先让做自我介绍(这里切出来看自己写好的自我介绍了),自我介绍完后因为听面试官声音有点小就又切出来提音量了,然后面试官就恼火了,说别一直切屏,他那边一直弹提醒(赛码网面试不写代码的时候切屏也会提醒,注意一下),之后就是面试官自我介绍,开始八股:

1. 智能指针有哪些以及适用场景
2. c++中有哪些常用的锁,使用场景是什么(这块问的很多,但是答得不够流利,得练习)
3. 自旋锁和排他锁有什么区别
4. 如何排查进程中cpu最繁忙的api或者说函数(这里没整过不太会,说的gdb写个脚本查看,太夸张了,下来查了一下大概是`top`+`perf`+`pstack`, top(或者htop可以更直观的查看cpu各个核心的使用率以及进程的资源占用,top -H -p PID也可以直接查看进程中的线程CPU占用)查看高消耗CPU的进程,然后执行pred top -p PID即会显示进程中系统调用和模块(可执行命令,链接库等内容)所占用CPU的百分比,然后pstack -TID(或PID)打印线程的调用栈(PID就是打印所有线程的调用栈),就可以排查高占用的进程以及函数。
可以举一反三一下:内存,磁盘等IO占用率高如何排查?
5. STL标准库中哪些容器是用树实现的,哪些容器是用哈希表实现的。
6. 项目里的thread_local高并发内存池,三级缓存是怎么做的,使用什么数据结构管理这些缓存页以及分割为大小不一的对象的。
7. 手撕:hashmap,要求使用开放地址法里的线性探测法实现,实现put和get函数(这个线性探测法第一次写,直接写成index一直++寻找空的了,面试官提醒要考虑最后找不到回来从头找的情况,因为可能hash算出来的key直接在最后,直接index++然后认为hash桶不足然后rehash的话可能会频繁发生rehash)
8. 反问:业务,是小红书哪儿做分布式高性能缓存的团队,还是需求挺多的,然后现在一个小组大概8个人主要做缓存这一块,处理一些什么什么的具体问题。

这个小红书的面试官真的是雷厉风行,大开大合的那种,30min急速八股然后手撕结束,一点实习没问,恼火恼火的也快,然后问问题的时候也会回答的很细很多,经常他回答的时候我都插不上话,如果不挂我的话,那我觉得他性格还不错,挂我我就要怪他调个音量就恼火我了
全部评论

相关推荐

09-10 15:44
门头沟学院 Java
面试官会根据我的回答继续深挖或引申到其他问题,我不会的地方也很有耐心的给我讲解,一小时高强度八股收获满满,发面经攒人品😋八股1. ThreadLocal原理,使用场景2. java的引用类型3. 线程池核心参数,如何设置线程池参数4. 线程池执行过程5. 线程池提交任务的方法submmit和excute有什么区别 (不会)6. 提交任务失败如何感知 (不会)7. HashMap扩容机制,2倍扩容的好处8. HashMap的put和get方法的执行过程9. HashMap的key是否可以为null,为什么null默认存到下标0处10. 为什么链表到红黑树阈值是8,反过来是611. JDK 7—>8 HashMap从头插法变成尾插法了解吗 (不会)12. 使用过哪些JVM工具? (没用过)13. 双亲委派模型14. 如何打破双亲委派模型?有哪些经典设计是打破双亲委派模型的?15. lamda表达式用过吗 (不会)16. mysql中一条sql语句的执行过程17. order by执行过程?没有索引的情况下怎么执行的? (不会)18. redo log、undo log、bin log提交时机19. mysql有哪些锁20. 行级锁锁的是数据行本身吗?21. 主从复制执行过程,可能出现什么问题?22. 为什么要分库?为什么要分表?23. 分表之后,主从复制可能出现什么问题?算法实现一个单例模式1. 为什么要在instance前加volatile和static2. volatile是如何实现可见性的?3. volatile还实现了什么功能,怎么实现的,加了哪几个屏障4. 为什么synchronized可以直接锁"类名.class",它为什么是唯一的5. 两次判断各自的作用许愿二面~
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务