都已经8月了,腾讯还发实习生面试(我看记录投的是技术大咖,没有投实习生),以为KPI走个过场,没想到被拷打了一个半小时,由于过程实在难受,发现自己水平差距还是有点大,故将这次面试记下来。面试官上来就问我能不能实习,不能就没必要继续了,我说有希望得问导师,还不能保证,我想既然是腾讯,就硬面了下去。看我要继续,直接手撕两道算法题先,第一题三数之和,双指针做的,由于紧张一开始还出现了基本的拼写错误,检查后ac,第二题求二叉树高度,不能用递归,ac。然后问递归的思路。然后就是煎熬的项目和八股:消息队列中,如何保证消息的可靠性,生产者发送失败怎么办?消费端处理消息失败又怎么办?如何保证Redis和mysql的数据一致?异步更新、同步更新,还没说完,又问mysql成功,Redis失败怎么办?Redis失败,mysql成功又怎么办?分布式锁是怎么实现的?Redission的底层原理(这里卡壳了)你认为自己最大的优势,我说学习能力较强问为什么你觉得自己学习能力强mysql的分库分表了解么mysql的索引了解么?什么数据结构讲一下mysql为什么用b+树不用红黑树,我提到IO读取效率高为什么B+树的磁盘IO次数少?说我结论对但没答到点B树和B+树和二叉树的区别接着问,B+树比起平衡二叉树为什么能减少IO次数你从数据结构的角度想想查值的话平衡二叉树和B+树哪个快?为什么B+树在IO又优势说我没答到关键点,问内存场景下,不考虑IO,平衡二叉树和B+树哪个好底层的原因是什么?可能觉得我答得有点语无伦次,改问死锁项目开发中,怎么会产生死锁,死锁怎么解决你在实际项目中不可能去搞什么银行家算法吧,那java实际编程中怎么避免死锁为什么采取合理的锁顺序可以避免死锁看时间1个小时半了就不问了反问:为什么我面的是实习岗,答统一捞的,有转正机会?