快手一二面

引流一下博客:https://blog.codewinner.top/articles/kuaishou-20230819/

https://blog.codewinner.top/articles/kuaishou-02-20230828/

一面(2023.08.19)

问的八股都算比较常规的,基本是对着简历问,项目面试官比较感兴趣,说的时间比较长。

1、面试官介绍

2、自我介绍

3、HashMap的结构,扩容机制,链表扩容和数组扩容分别发生在什么场景?加载因子多少的时候扩容?每次扩容几倍?多线程情况下HashMap会有什么问题?如何解决?

4、CuncurrentHashMap的结构,上锁机制。

5、为什么CuncurrentHashMap从1.8开始要采用CAS?你能说说CAS的流程吗?CAS会有什么问题?如何解决ABA问题?那数据库可以添加一个版本号这种方法,Java的CAS怎么避免ABA呢?

6、两个线程访问一个资源,你有什么办法避免资源竞争,知道的都说出来。你提到了ReentrantLock,他的结构是怎么样的,为什么可重入?你说里面使用了AQS,说说AQS的结构?AQS是怎么进行加锁的,指令是什么?

7、说一下JVM的内存结构?每一个部分都用来干什么?堆可以分为几个部分?垃圾回收的算法有哪些?垃圾收集器有哪些?都是什么流程,有什么特点?你使用过哪种,有配置过吗?

8、你平时用MySQL都用的什么引擎?InnoDB相对于别的引擎有啥优势?事务的隔离级别有哪些?各个级别都能解决什么问题?InnoDB使用的什么?能解决幻读吗?为什么?MVCC的原理是啥?undo log的数据结构是什么样的?

9、索引按照数据结构分类有哪些?分别都什么结构?各有什么优势?B+树效率高还是Hash效率高,为什么采用B+树?索引有哪些分类?联合索引知道吗,构造的B+树里面是怎么样的?如果执行这一条查询语句会走索引吗,为什么?

10、你的低代码平台用了Redis,里面用Hash来存储结构,说说你的key、Field都是怎么设计的?Hash的底层结构长什么样?各自都长什么样?Dict的扩容是怎么样的?Zset结构是什么?

11、你做过一个通信系统,能讲讲你用的什么框架吗你的项目结构能否介绍一下?为什么要用线程数组而不用线程池?消息转发是如何实现的?你能介绍下你的IO多路复用用到操作系统什么机制吗?epoll听过吗?

12、为什么要设计心跳机制?心跳谁来发?服务端对于没有收到心跳包的用户如何处理,怎么判断有没有收到心跳包?快手的直播平台,每一台机都有10w用户,让你来设计一个心跳机制,我给你两个方案,你说出优缺点,你会选择哪个

  • 对每个用户单独一个定时任务,分散发送心跳。
  • 对所有用户用一个定时任务。

13、算法题:给你一个value和error,求value的平方根,要求 | 计算值 - 真实值 | <= error。使用二分查找答案即可。需要注意value小于1和大于1要分别处理。

总体大概一个半小时,问的大多是基础问题,也基本回答上来了。

二面(2023.08.28)

1、面试官介绍。部门是直播技术部。

2、自我介绍。

3、说说你的聊天系统的架构(基于Reactor),具体的实现逻辑,你的架构相较于其他的架构优点是什么?为什么能同时维护多个连接?NIO的实现方式?这里还有些项目相关问题,大概问了十几分钟。

4、算法题。两个数组,从A和B各取一个元素,求出绝对值最小值。这里大概十分钟。

5、给了几个SQL语句,分析如何构建索引,查询索引执行的流程,大概需要的耗时,还有些零碎问题记不得了。这里的耗时我不理解,面试官问有3000w条数据,查出来是个位数,然后用的单个字段的索引,大概要多长时间,这个要我估算?有懂的老哥可以评论区解答下谢谢。这里大概十分钟。

6、知道什么数据压缩算法吗?讲讲哈夫曼编码,哈夫曼编码的理念是什么?

总体大概40分钟,比一面问题少很多,问的问题大多都答上来了,就是感觉问的有点少,希望不是不想问了就结束了,给双非鼠鼠一个机会吧。

全部评论
一二面隔了多久通知的
1 回复 分享
发布于 2023-08-28 14:28 广东
hxd有约hr面吗?我也是8月底二面,现在没挂我,但也没有后续流程安排
点赞 回复 分享
发布于 2023-10-24 17:14 广东
算法题思路是啥 能讲一下吗
点赞 回复 分享
发布于 2023-09-15 23:16 湖北
老哥,还有三面吗?
点赞 回复 分享
发布于 2023-08-29 09:06 辽宁
楼主二面手撕题的两个数组是排好序的吗?
点赞 回复 分享
发布于 2023-08-28 19:50 陕西

相关推荐

查看11道真题和解析
点赞 评论 收藏
分享
09-22 10:43
已编辑
门头沟学院 Java
面试官会根据我的回答继续深挖或引申到其他问题,我不会的地方也很有耐心的给我讲解,一小时高强度八股收获满满,发面经攒人品😋八股1.&nbsp;ThreadLocal原理,使用场景2.&nbsp;java的引用类型3.&nbsp;线程池核心参数,如何设置线程池参数4.&nbsp;线程池执行过程5.&nbsp;线程池提交任务的方法submmit和excute有什么区别&nbsp;(不会)6.&nbsp;线程池提交任务失败如何感知&nbsp;(不会)7.&nbsp;HashMap扩容机制,2倍扩容的好处8.&nbsp;HashMap的put和get方法的执行过程9.&nbsp;HashMap的key是否可以为null,为什么null默认存到下标0处10.&nbsp;为什么链表到红黑树阈值是8,反过来是611.&nbsp;JDK&nbsp;7—&gt;8&nbsp;HashMap从头插法变成尾插法了解吗&nbsp;(不会)12.&nbsp;使用过哪些JVM工具?&nbsp;(没用过)13.&nbsp;双亲委派模型14.&nbsp;如何打破双亲委派模型?有哪些经典设计是打破双亲委派模型的?15.&nbsp;lamda表达式用过吗&nbsp;(不会)16.&nbsp;mysql中一条sql语句的执行过程17.&nbsp;order&nbsp;by执行过程?没有索引的情况下怎么执行的?&nbsp;(不会)18.&nbsp;redo&nbsp;log、undo&nbsp;log、bin&nbsp;log提交时机19.&nbsp;mysql有哪些锁20.&nbsp;行级锁锁的是数据行本身吗?21.&nbsp;主从复制执行过程,可能出现什么问题?22.&nbsp;为什么要分库?为什么要分表?23.&nbsp;分表之后,主从复制可能出现什么问题?24.&nbsp;mysql集群解决了什么问题?会产生什么问题?算法实现一个单例模式1.&nbsp;为什么要在instance前加volatile和static2.&nbsp;volatile是如何实现可见性的?3.&nbsp;volatile还实现了什么功能,怎么实现的,加了哪几个屏障4.&nbsp;为什么synchronized可以直接锁&quot;类名.class&quot;,它为什么是唯一的5.&nbsp;两次判断各自的作用许愿二面~9.17&nbsp;更新一面一周后约了明天二面
点赞 评论 收藏
分享
评论
2
24
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务