阿里巴巴闲鱼部门一面 3.17日晚9 (60分钟)
1.项目(20分钟)
秒杀系统如何解决超卖问题(sql语句count>0才会减库存)
2.redis能否用来做消息队列
3.redis中有哪些数据结构
4.redis为什么快
5.IO多路复用是指什么
6.为什么redis是单线程,单线程的好处
6.什么是同步和异步
7.redis的持久化机制
8.数据库Innodb的特点
8.对比MyISAM
9.mysql索引实现底层用到了什么数据结构
10.B+树相比B树有什么好处,为什么
11.常见的排序算法
12.讲一讲快速排序的原理和复杂度
13.Srping IOC和AOP AOP是怎么实现的
手撕代码:验证一颗树是BST(给了5-6分钟写代码)
结果:面试官反馈我在北美的池子里算基础不错的,项目要讲的更好一点,好好准备第二轮
淘系闲鱼二面 3.19日晚9(60分钟)
1.个人学习情况
2.针对我自己问了些本科的事情,为什么转行
3.项目
boss说
(1).考虑用集群去提高qps,单机项目总是扛不住的
(2).数据库端一般不用事务,对性能影响比较大
(3)问我怎么提升数据库的性能?
(4).QPS还能怎么提高
(5).你说可以用布隆过滤器去防止缓存击穿,请说一下布隆过滤器实现的原理?哈希函数选择个数?
4.Java基础
内存模型 GC算法 判断对象已经死亡
5.数据库联合索引 以及最左原则
6.算法题 一个无序数组求中位数
7.智力题 赛马问题
结果:过了
淘系闲鱼笔试加面 3.31日晚9点
这个笔试加面是因为我笔试结果不太理想,所以单独加面
1.类似leetcode merge intervals的变种
2.给定一个数N,求所有整数拆分可能的最大乘积(leetcode原题 数学法或者动态规划)
淘系闲鱼三面P9面 4.1日晚上10点 45分钟
1.个人情况 本科有没进实验室
2.项目
3.数据库Innodb的特点 对比MyISAM
4.索引底层数据结构 为什么是这种结构
5.布隆过滤器原理 在项目里实现了吗 怎么实现的
6.看过哪些源码
7.hashmap的原理
8.mybatis怎么实现的(这个有点为难我胖虎啊),我面的时候只记得mybatis封装了jdbc,有个sqlsessionfactory
9.反问 问了很多关于闲鱼产品的问题
酒丐前辈说闲鱼目前还是侧重把已有的产品服务给做好,然后注重的是用户增长。
三面基本就是讲讲项目 P9前辈稍微问了点问题,然后就差不多结束了,太感动了,菜鸡暴风哭泣。
交叉面(某大数据bu) 4月7日晚上九点半 (30分钟)
1.个人介绍
2.怎么学习的Java
3.聊一下synchronized锁和api的lock锁
4.synchronized锁住的是什么东西 lock锁住的是什么东西
5.聊一下HashMap
6.hashmap如果现在要取出所有的key和所有的value,怎么做效率最高 查了下 使用entryset()
7.讲一下数据库连接池
8.一张200完数据的表,现在要取出前200个数据,sql语句怎么写
9.遇到最难的事情
10.技术规划
11.自己的优点
12.自己的缺点
13.反问环节
这一次面试没有约时间,面试官直接打电话过来,我还在油管上看绵羊料理,看到Ali meeting直接被吓呆。个人感觉交叉面大叔还是不错的,只是普通话有点不太好,他的好几个问题我都没听明白。
4.112日晚hr面
1.介绍自己 顺便聊了美国的疫情
2.自己平时怎么学习
3.遇到困难怎么处理
4.你觉得自己不是科班的 是不是在项目方面有很多劣势,毕竟人家科班读了3-5年,有许多的项目经验
5.实习经历
6.学习编程的过程
结果:等了一周,直接发了意向书
总结:
1.基础知识要温习,我感觉我这几轮的阿里的面试问到的基础知识是真的基础,不是假的基础。(但是你如果面的是阿里妈妈、阿里云、淘宝这种核心hot部门,可能做得准备要更多)
2.算法能力真的太重要了。其实不要求你有特别强的算法能力,但是基本的leetcode你要做过200-300题吧,然后看到就能秒掉的至少也要有100题吧。再者,面试的时候和面试官的交流也是比较重要的。最好能从暴力法开始讲,讲一下优化的思路,然后给出最优解
3.自己做过的项目一定要能说清楚,搞透彻。即便有些编码的地方可能不懂,甚至没实现,但是至少要去了解项目中优化的点,或者说从架构的角度来说大致要怎么做。