由于在实习,工作日不想请假,就周末面试。从7月14日面到7月29日,每周一场,煎熬啊!!!整理下面试经验供大家参考
由于简历上没有写实习,所以一直怼项目
一面(7月14日 1.5h):
1、自我介绍
2、怼项目
3、100万个数中选出最大的100个
4、建堆过程,复杂度?为什么?
5、上边的问题有别的办法吗?(分治)
6、缓存了解哪些?(我搞错了,说redis和memocache,面试官顺带问了redis,其实想问的是LRU、LFU)
7、redis的持久化方式?
8、redis做分布式锁了解吗?会出现什么问题?
9、其实我想问的是缓存算法,LRU了解吗?
10、写一道题吧,代码实现LRU(letcode上的)
11、看你学的是Java,问个Java题目吧,线程的同步方式有哪些?(synchronized、reentrantlock各种讲底层)
12、上边说到了reentrantlock,让我用reentrantlock实现一个生产者消费者模式(手撕)
13、问点网络的知识吧,输入url到收到响应,经历了什么?
14、tcp握手挥手讲下,为什么握手是三次,挥手却是四次?
15、有什么问题问我?

二面(7月19日 1h13min):
1、自我介绍
2、怼项目
3、我们写个题吧,三数之和(letcode原题)
4、嗯,写得不错,再写一个。。。二叉树按层打印(offer原题)
5、volatile了解吗?(我讲了底层汇编指令lock前缀,面试官问我你从哪里看到的汇编?当然从书上啊)
6、不错的小伙子,竟然看书,嗯。。。来,我们手写个volatile的例子吧
7、输入一个ping命令,它经过哪些设备或者走哪些协议?(随便蒙的,这个真不知道)
8、数据库事务隔离级别了解吗?balabala
9、为什么mysql在可重复读级别下可以避免幻读?(快照读、next-key锁(行锁+gap锁))
10、有什么问题吗?

三面(7月29日 52min)(本来约的周日下午面,但是leader要“度假”,直接失踪,等了10分钟我联系hr才换了时间)
1、自我介绍
2、怼项目
3Spark任务提交的执行流程
4、写个题吧,之字型打印二叉树(offer原题)
5、JUC的BlockingQueue了解吗?都用在哪里?(balabala,先讲底层,再讲场景:线程池的工作队列、生产消费者模式)
6、好,那么问题来了,既然你看过底层,那就手写一个BlockingQueue吧,实现它的put和get方法(用Reentrantlock的condition实现)
7、好,顺便用BlockingQueue写一个生产者消费者模式吧,要求有测试用例且可以运行
8、聊聊你简历上发表的这篇论文
9、看你简历上写的论文是关于动态规划方面的内容,可以说说动态规划在生活中的具体应用吗?(跳台阶,状态转移方程,就知道这些了)
10、好了,你有什么问题要问我?