9.25 14:00 字节一面(1h)
1.自我介绍
2.实习项目介绍,XX功能是怎么实现的?
3.讲讲mysql中的B+树,SQL是如何调优的?举个幻读的例子?写一条sql语句,分库分表?,主从复制?;
4.mysql的事务是怎么实现的?undo log和redo log的区别? MVCC和间隙锁???
5.JVM的垃圾回收算法?
6.redis的基本数据结构以及使用场景,redis的主从复制,持久化机制(RDB和AOF适合什么样的场景),redis的删除策略?内存淘汰机制?如何实现lru?
7.项目中的redis是怎么用的?项目中redis的过期时间是怎么设置的?项目中如何提升高并发的性能的?
8.算法:蛇形打印二叉树
9.反问
9.28 13:30 阿里一面(1h)
1.自我介绍
2.介绍下你的实习项目,每日推荐的功能如何实现?如何实现对歌曲的去重?假如不喜欢的列表数目非常多(可能几千条,几万条怎么做)?讲下RPC?
3.介绍下你的秒杀项目,秒杀的流程是怎样的?如何模拟高并发的操作?假如你的库存有10个,来了3000个并发你是怎么处理的?怎样判断用户是不是秒杀成功?你的用户信息存在哪儿?
4.讲下redis的特性有哪些?redis如何实现一个计数器?redis中是如何保证执行+1操作的时候,不会出现线程安全问题(即初始值为0,来10个线程对之执行+1操作,其结果必是10),redis是如何保证原子性的?如何是实现redis分布式锁?讲下rabbitmq?还了不了解其他分布式或者其他中间件不?
5.讲下索引的b+树?知道有什么索引类型?主键索引和唯一索引的区别?唯一索引可以有多个的使用场景是什么?联合索引为什么有最左匹配原则?
6.讲下线程池的参数有哪些?当线程提交一个任务时,线程池是如何处理的?在线程池总使用threadLocal要需要注意什么?threadPool有什么应用场景?
7.讲下hashmap的put()方法的流程?扩容是怎么扩容的?为什么要扩容2倍?
8.反问
面评:很多东西还停留在会用的层面,需要进一步去理解原理,以及多问为什么?
总结:阿里面试的收获也挺多的,面试官尤其爱问为什么???