快手Java 一面 60min

介绍项目(实习+个人项目)

整体面试感觉很好,并不是生硬的考察八股,而是根据简历上的项目经验进行深挖

大概主要涉及以下八股内容:

1. 线程池参数及原理  (低级八股)

2. MySQL主从复制的原理 (我说了传统方式是binlog+pos 之前自己还了解到过GTID的同步方式,问我有没有异步的方式,说了canal但是感觉不太对,最后反问环节可能我也没问清楚,没问到答案。大概提及了同步、异步、半异步、链式、星式?)

3. MySQL索引为什么用B+ (低级八股)

4. 联合索引场景题,有一个A,B,C的联合索引 select * from xx where A=1 and B=1 orderby C limit 1000能用到几个字段 (这道题能确定的是AB一定用到了,但是C我说不太确定能否用到,后来使用explain尝试了,C是可以用到的,但是中间如果B条件去掉,Extra中就会显示Using filesort了,即排序未使用到索引)

4. 事务的特性ACID(低级八股)

5. 你知道MySQL的WAL原则嘛?有什么好处(这个知道是write ahead logging,先写日志再写数据。好处只答出了保证数据不丢失,这个地方实际上应该是redo log+WAL保证数据不丢失,同时WAL的另一个好处是减少IO次数,将数据的随机空间写入变成了日志的顺序写入,随后再通过异步刷盘进行数据刷入可以提升当时的吞吐量)

6. 那Redis的持久化你了解嘛?(低级八股,但是问了个超纲问题,Redis的AOF遵循WAL原则嘛? 这个我第一时间提出了质疑,WAL是为了解决磁盘写入的,可Redis没有磁盘写入啊,AOF就是Redis 的磁盘写入,AOF既是日志又是数据,这里何谈WAL?。。。我有点懵,有了解的童鞋可以评论教一下,万分感激)

7. 类加载系统 - 没有深入问,可惜了,JVM还是比较有把握的 

8. 中间还问了ConcurrentHashMap的put执行流程 (低级八股)

算法题: 一个数组,两端拿K个数,最大和。简单题 (上来没让我写,让我说下思路,结果我说回溯,面试官问回溯的时间复杂度和空间复杂度,一直刷算法的时候没考虑过计算这些,所以一上来蒙了,应该是2的K次方时间复杂度,递归的空间复杂度不会算,求大佬指点。后来说写一下吧,秒了)

全部评论
算法题有链接吗 老哥
2 回复 分享
发布于 2023-08-04 00:11 黑龙江
第六题应该是这样的,redis的aof确实时先执行命令然后再写日志,这样做有两个优点,1、已经执行完毕说明命令一定没错,可以放心记录日志,不需要再次检查;2、因为aof记录日志是在主线程中进行的,如果后记录日志就不会阻塞当前命令的执行;缺点是数据不安全,可能会出现刚修改的内容丢失;再者就是不阻塞自己但是会阻塞后续命令,典型损人利己。
2 回复 分享
发布于 2023-08-06 22:07 陕西
Redis aof也是先写在缓冲区,然后提交到磁盘吧😁
1 回复 分享
发布于 2023-08-03 23:22 上海
mark
点赞 回复 分享
发布于 2023-08-03 23:29 河南
大佬 算法是力扣哪个题呀
点赞 回复 分享
发布于 2023-08-04 00:15 广东
6. aof机制也是有缓冲区的,修改命令操作后,先把命令日志写到缓冲区,再根据设置的刷盘时机,主动or被动地将缓冲区的日志追加写到磁盘aof文件里。 个人理解,祝lz二面
点赞 回复 分享
发布于 2023-08-04 09:12 上海
大佬,个人项目怎么搞啊,能否给点意见
点赞 回复 分享
发布于 2023-08-04 13:06 浙江
canal 用来做redis缓存和mysql数据一致的吧
点赞 回复 分享
发布于 2023-08-06 22:40 辽宁
Mark
点赞 回复 分享
发布于 2023-08-10 08:53 上海
试试携程,帮忙看流程,NTAW3GA
点赞 回复 分享
发布于 2023-09-07 11:59 上海

相关推荐

牛舌:如果我不想去,不管对方给了多少,我一般都会说你们给得太低了。这样他们就会给下一个offer的人更高的薪资了。
点赞 评论 收藏
分享
18 151 评论
分享
牛客网
牛客企业服务