最近的腾讯(被捞)、携程(OC)、美团(凉)面筋
腾讯 CGIG
3.16 一面 30min
正常八股,难度简单。
- redis 基本的数据结构;
- redis 持久化策略;
- JAVA AQS 基本介绍以及 jdk 中的应用;
- 数据库索引结构;
- 常见的排序算法,jdk Arrays.sort() 是怎么做的选型;
- 手写单例、手写链表翻转;
3.21 二面 60min
进阶八股,难度中等。
- 项目中 Jmeter 压测是怎么做的;
- 压测的时候前几次值一般偏低,知道是什么原因吗(懒加载);
- 数据库索引底层结构;
- 最左前缀原则原理,如何利用好这个原则;
- 进程间通信,线程间通信,基本原理和应用,JAVA 中的对应实现;
- UDP 和 TCP 的区别;
- TCP 面向流,那怎么解决粘包问题;
- 手写二分查找;
3.25 三面 40min
变数来了,面试官竟然给我的项目提前做了 Code Review,受宠若惊的同时也暗自感到不妙...
- 这个在缓存中找到用户的日志设置成 INFO 级别,有什么问题(啊这,应该是和日志级别有关吧,以为他要很底层的答案,只说自己木看过源码);
- 这个异常种类为啥是 RuntimeException(阿sir,这个类是我为了试试 Spring 异常处理注解写的测试类啊...);
- 你这个项目中缓存数据库双写一致怎么保证的,为什么不先更新数据库再更新缓存而是直接让缓存失效?从性能方面考虑下(这时候有点晕,其实能答出来的...);
全程脑子里都是 ???,可能是也没想到大厂的一线开发人员会这么仔细地看我一个轮子项目的代码吧 w(゚Д゚)w...
3.31 TEG 捞面 35min
不出意外楼主与天美的缘分止于三面,可能是由于一面二面的评价比较好,后来又被腾讯云部门捞起来了。
- 工作地点会考虑深圳吗;
- 经历了这么多大厂面试,有什么收获;
- 平时怎么学习;
- 有转正的想法吗;
- 应用场景思考,多机信息采集汇集到一台机器上;
美团 点评
3.13 笔试 120min
一道 100%,一道 45%,一道 81%;
3.19 一面 30min
面相和蔼的面试官,语气沉稳,相当好的一次面试体验。
- 项目中数据库、缓存双写一致是用的什么方案,有没有想过如果 redis 操作失败了怎么解决;
- volatile 关键字原理,印象中 jdk 哪里有用到这个关键字,写时复制?能不能再延伸下;
- 熟悉的设计模式,从看过的源码里挑几个应用讲一下;
- redis 底层数据结构,SDS 相较于 C 语言传统字符串的优劣;
3.25 二面 40min
这一面状态有点不好
- 假设 QPS 翻了 100 倍,你这个微服务项目有哪些需要注意的(就说了个网关限流,mysql 分库 redis 分片哨兵,hystrix 熔断降级都暂时被我忘了。。。);
- JAVA 类加载过程说一下,假如两个类完全限定名相同但是类加载器不同,他们是重复类吗(平时张口就来的八股这时也背不利索了。。。后一个是确实不知道);
- mysql 事务隔离级别;
- 常见的索引结构有哪些,哈希表相较于其他结构有什么优劣(答案也没有说全。。。);
- kafka 怎么保证消息不会丢失(同样没说全。。。);
- 算法,最长有效括号子串(leet 32,写了 n^2 的暴力枚举,动态规划大概说了下思路);
反问环节看面试官回答好像对我并不是太满意。
3.29 三面 45min
这一面是总监压力面,勉强全程木有破防。
- 项目相关;
- 知道有限状态机和无限状态机吗(只了解前者。。);
- 比较下漏桶和令牌桶两种限流方式(只了解后者。。);
- 平时怎么学习的;
- 遇到过的挑战,怎么克服的,收获是什么;
- 看过开源项目的源码吗,挑几个讲讲;
- 应用场景:如何获取某个城市西餐厅的分布与数量的信息;
emm,面试官貌似是刻意说话的时候带点不耐烦给人无形的压力,不过对于读研期间经常被师兄师姐还有老板 diss 的我来说已经是没啥了。。
4.2 感谢信
嗯,反问主管的时候看他说需要提高学习能力我大概就感觉不太妙。
放进鱼池了,缘分有限,就这样把。
携程
3.23 一面 30min
面试官相当和蔼,不过全程没问八股。
- 你的这个秒杀场景里,使用了漏斗思想逐层过滤请求是怎么做的;
- 项目从单架构变为微服务,有什么变化吗;
- 网关限流方案呢(令牌桶);
- 怎么防止商品超卖问题,怎么保证缓存数据库双写一致;
- 新建场景:多机环境下如何保证无重复记录插入(我的方案可能有点平庸:分布式锁,拿锁后再检查重复,没有再插入然后放锁);
- 要是操作数据库过程出错了呢(大部分分布式锁都有的超时机制);
3.26 二面 35min
问题有些进阶,也没咋问八股。
- AQS 原理,jdk 里的对应应用举例;
- Redis 底层数据结构,比较下 Redis 的字典和 jdk1.8 的 ConcurrentHashMap(主要是扩容行为,渐进式 rehash VS 多线程扩容);
- 微服务项目用的哪个注册中心,怎么做到传入服务名得到对应的实例地址(Robbin 客户端负载均衡,讲了下大概实现);
- 看过部分 Spring 源码是吧,说说里面用到的设计模式(答了 Robbin 负载均衡的策略模式,以及 Eureka Server 里用到的装饰器模式,事务注解的代理模式,只说了个大概);
- 集合怎么做到一边遍历一边删除;
- 手写一个生产者消费者队列(一个普通链表,一把主锁绑定两个条件队列);
反问环节
我表现怎么样?
A:总体还行,看过源码还可以。另外感觉你很活跃啊,建议回答的时候手的动作少点,我的注意力差点被你手势吸引过去了(我:???( ̄(OO) ̄))。
3.31 HR 面 13 min
经典家常;
4.2 OC
小结
除少数kpi面和hc满了随意面,大厂的面试质量一般都非常高,他们问的很多问题都相当有区分度(也可能是看似很基础的问题,不同的答案也会得到不一样的评价),所以平时的归纳总结真的很重要,试着把一些个人见解融入自己的答案。
#面经##腾讯##携程##美团##Java工程师#