头条二面
二轮技术面,17:00~20:25,晚饭时间hr 小姐姐还特贴心的带我体验了一把传说中的头条餐厅,不超过半小时
- 聊项目,画项目架构图,画一个用户从发起请求 到接收到响应 中间经过哪些服务 每个服务做什么事情 的流程图
- 讲项目中的难点、挑战,你是如何解决的
- redis 中有几种类型 & 各自底层怎么实现的 & 项目中哪个地方用了什么类型,怎么使用的
- redis如何实现分布式锁,zk如何实现分布式锁,两者的区别。如果service还没执行完,分布式锁在redis中已经过期了,怎么解决这种问题
- synchronized底层实现,加在方法上和加在同步代码块中编译后的区别、类锁、对象锁
- 锁升级的过程
- java运行时区域 及 各个区域的作用、对GC的了解、java内存模型 及 为什么要这么设计
- 对索引的理解,组合索引,索引的最佳实践
- countDownLatch用过没有,在项目中如何使用的,对aqs 的了解
- 写生产者消费者问题,考虑高并发的情况,可以使用Java 类库,白纸写代码
- 如下图所示
- 设计一个发号器,考虑集群和高并发的情况,要求发号器生成的id是递增趋势,通过id可以区分出来是今天生成的id还是昨天生成的id,但是生成的id中不能直接带有日期,要具有一定的混淆功能,白纸写代码
- 一个二位数组,每个元素都可以往上下左右四个方向走,寻找最长递增路径。如下图所示,最长递增路径即红色字体路径。白纸写代码。
美团四面
电话面试(40分钟)+现场三轮技术面试(3.5小时)+hrbp面试(30分钟)
- 数据库和缓存的一致性问题。先更新数据库,再更新缓存,若更新完数据库了,还没有更新缓存,此时有请求过来了,访问到了缓存中的数据,怎么办?
- 聚簇索引/非聚簇索引,mysql