小厂面经附回答

分布式锁设计?(简历上的)(之前的牛客笔记写了)
锁分类讲一下(乐观悲观去讲,讲了cas底层c++指令硬件上锁和悲观锁(去讲syn重量级,reen可重入和非阻塞,公平非公平,可重试(重写trylock方法)))
MVCC讲一下?(讲了三要点,比较事务id去判断能不能修改,和隔离机制生成ReadView的区别。面试官说可以了。我还可以讲为什么只有两个隔离机制用到MVCC)
临键锁,间隙锁(我说就是区间和端点值锁住,面试官说自己也忘了)
索引底层数据结构,为什么是b+树?(叶子存数据和索引,范围查询快,叶子成双向链表)
b+树怎么提升范围查询性能的(双向链表)
mq怎么保证不丢?(答生产者重试和消费者确认。面试官说:rocket持久化刷盘最直接)
spring cloud?(没用过)
聊天室功能怎么实现(websocket和udp协议?)
tcp和udp区别(安全性(证书加密)和实时性(长连接和无连接))
算法讲思路:
快排(基准值,比较基准值)
链表用什么排序?(堆排?归并?)
回文链表(快慢指针,一步俩步)
全部评论

相关推荐

很多兄弟觉得简历面试过不了,是因为项目不行,烂大街了,面试官看都看吐了。但是作为一个应届生而言,你怎么可能会有自己的独立研发项目?无非就是B站,github,知识星球等等一些平台找项目,你找别人也会找,只不过是烂和更烂的区别。那什么是好项目?有的人说webserver,是好项目,但是写的人多了,也把他写烂了。但是也有兄弟就写webserver,也能进大厂,那又是怎么写的呢?好的项目,不是说你用的技术越多就是好项目。你面试的时候讲不清楚,不是加分,反而是减分。那好的项目就是一定能够解决具体问题且你能讲得清楚的就是好项目。举个例子 就拿webserver来说,你就在webserver之上再做一个项目,就应用到你们大学食堂饭菜的口味好不好的动态投票上,设置这么一个使用场景。就基于webserver做。这样你就会知道你的一些技术点是在哪一块解决了哪个具体的问题。比如说问题列表的获取,投标选择的提交,投票结果的查看,你都是对应的用什么技术解决的。什么epoll做了什么,网络buffer做了什么,内存池管理怎么做的等等等等~当你的项目有了具体的使用场景之后,你就会清楚你代码的每一行每一行是实现了什么功能,解决了什么问题,这样面试官问的时候,你都不用背,就是本能输出。扣细节也都胸有成竹。所以说,好的项目,不是去挑选技术点多的项目,而是你能有使用场景,并在推进的过程中,你发现问题解决问题,你就会发现,面试官问的细节无非也就是这些。
你认为哪些项目算烂大街?
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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