内推的是抖音直播钱包组,base杭州,一面二面过了,三面leader面挂了,扭转到抖音直播服务架构组,base北京,已经OC。
先说下算法题吧。
抖音钱包组一面 找到二叉树路径和为target的所有路径并打印出来(不一定是从根节点出发)。
抖音钱包组二面 最长回文串;全排列。
抖音钱包组三面 实现多种方式三个线程依次轮流打印ABC,打印100次;leetcode842,将数组拆分成斐波那契数列。
=========HR扭转到其他组=========
直播服务架构组三面 排序两个有序链表。
一面面试官是个巨佬。
自我介绍。
part1,项目。问的很细腻,为啥用到消息队列,如果解决消息重复和消息丢失问题;自己如何设计一个消息队列保证一个消息不会重复消费。如何保证你的项目高可用?项目为什么要使用N-Tree,不用有什么影响吗?
part2,基础。面试官也懂java,问了java相关。HashMap原理,扩容机制以及ConcurrentHashMap对比;HashMap如果存入元素很多会溢出吗怎么解决;volatile关键字作用以及和synchronized区别;线程池七大参数以及工作原理;阻塞队列了解过吗?(这里我答的很深,从ReentryLock到AQS那套全部说了涉及到些源码)。死锁了解吗?谈谈死锁的必要条件?在项目中解决过死锁的问题吗?垃圾回收算法了解吗?老年代回收担保机制是什么?JVM对象什么时候被回收,G1垃圾回收器回收原理;G1用户自己设置停顿时间的参数是什么?GC Roots有哪些?CMS和G1区别在哪?
part3,算法题。算法题hard,挺难的,找到二叉树的路径和为target的所有路径并打印出来。(注意,不一定是从根节点出发), AC。
自我介绍。
二面面试官问的很细腻。
part1,全部是基础,没问项目,一面面试官问过了。
首先问数据库,MVCC了解吗 ;索引匹配原则;给了个sql和一些约束,具体不记得了,问走了索引没,为什么?又写了sql,具体不记得了,问加锁没,加了什么锁? mysql的悲观锁和乐观锁怎么实现的?为啥用B+树索引,B树索引有什么好处?Hash为啥不建议做索引数据结构?计算机网络,计算机网络五层模型;http请求报文和响应报文包含了哪些?https和http默认端口号是多少?https和http区别是什么?post请求了解吗其和get请求的区别是什么?Redis的zset,set,hash,list,string的底层数据结构,以及应用场景。跳表原理,hash用在购物车会出现什么问题?zset怎么使用,自己设计一个场景题使用zset;set实现给帖子点赞如何设计key和value?堆排序如何实现?令牌桶算法了解吗?实现排行榜的zset指令是什么?(zrangebyscore)。
part2,算法题。最长回文串;全排列 ,AC。
自我介绍。问了项目不敢兴趣,直接做题。
三个线程依次轮流打印ABC,打印100次,说实话一直忙着刷高频题和记八股,这钟基础题写了半天没AC。 换道新题,将数组拆分成斐波那契数列,基本思想是回溯,但没AC。
智力题,一个卡车可以装多少个乒乓球,给个数量级。
聊天,问最近6年来自己认为最成功的事情是什么?
题没AC,挂了。
自我介绍。
直接做题, 排序两个有序链表, AC。
智力题,问公交车15分钟来一趟,请问等5分钟等到公交车等概率是多少?我答的是使用指数分布去计算,面试官觉得还行。
问OS,怎么看虚拟内存,我这里也给他答了很深,把八股串起来了,面试官觉得还行。
问计算机网络,从浏览器输入一个url到渲染到浏览器这之间经过了哪些缓存。我答了DNS缓存,架构,以及业务代码的缓存。
2022.3.3
已经OC啦,真的太不容易啦~