快手一面面经

时间:4.21
公司地点:北京
时长:52min

做了一些简化,提取#牛客AI配图神器#了更有借鉴价值的部分
1. 部门介绍
2. 自我介绍
3. 这两个项目你觉得哪个项目复杂度高一些,可以多聊一会
4. 你这个项目主要是想解决什么样的问题呢
5. 你刚才说这些方法的话,应该说也是社区内或者说比较常见的一些处理方式了,对吧?我都或多或少都能get到,但是我有一个问题,就是**你做这件事情之前,就是每一个技术的应用之前,你有没有去验证这个技术确实提升了准确率呢**
6. 我们的这些处理方式是否真正的真的提升了它的准确率。就是我们只是堆砌技术,还是说我们确确实实是提升了这件事情?
7. 你这一知识库当时怎么选的?你做的知识库是什么类型的知识库?
8. 那你这知识库里面涉及了哪些方面的内容?比如说文学类的,还是什么科技类的?是什么航天类的等等?有没有就说具体一些?
9. 那你这个博客内容写的多吗?
10. 那如果14篇文章的话,而且你这14篇文章看起来所涉及的范围是比较发散的,那么在这种情况下,其实这个rag的检索本身就不容易出现,刚才说的那个检索有问题的情况,这可能本身就不是个问题。
11. 在我们去真正去做一件事情这的处理的时候,其实我们还是应该先去有一个度量的标准,不然我们优化可能是负优化,我们都不知道对吧?就是说我现在要做 rag 检索。我要去先做一个度量的方式,然后去验证它的准确率,你应该怎么做?
12. 你怎么判断问题回答是准确的
13.那么我怎么看到线上的这些回答的准确率呢?
14. 有必要搞多级缓存吗
15. 好,那首先就多级缓存来说,你觉得,它有什么弊端,还有它有什么优势?这个讲一下。
16. 我有一个问题,首先其实我们一般认为 redis 它的那个吞吐是非常高的,而且如果说我们比如说数量很大,Redis 它也是支持那个多节点对吧,比如说…… 不管是哪种方案吧,Redis 也可以支持多节点的这种部署,所以在这种情况下的话,我们认为 redis 从网络压力这一块是没有太大问题的。那么在你看来,有了 redis 的话,我们还要去引入本地缓存的主要目的是什么?因为刚才你说的只是为了减少网络开销。 但是现在我们实际的生产环境中 redis 的是网络开销 其实是没什么太大的问题的。你应该明白我的意思,就是 redis 网络开销不是它的核心问题,就是我为什么非要引入本地缓存
17. 我看后面你还自己写过两个 SKILL 对不对?能具体展展开一个就是你可能平时,有没有平时用的比较多的,我想知道不是那种为了写而写的那种,就真正能解释你生活中问题的那种 SKILL
18. 你最近面试多吗?
19. 那八九场的话,就是你觉得你做的自己就是面试,就是相当于面试自己的这种 Skill 和你真正去面试中拿到的面试题,它相似度高吗?
    >我是我当时了解到,主要是主要是因为网络开销的问题,进一步提升响应速度
20. 说实话 redis 并不存在很大量的网络开销问题  对不对?
21. 我看后面你还自己写过两个 SKILL 对不对?能具体展展开一个就是你可能平时,有没有平时用的比较多的,我想知道不是那种为了写而写的那种,就真正能解释你生活中问题的那种 SKILL
22. 你最近面试多吗?
23. 那八九场的话,就是你觉得你做的自己就是面试,就是相当于面试自己的这种Skill和你真正去面试中拿到的面试题,它相似度高吗
24. OK, 那你觉得你这个 SKILL 有没有帮你解决到一些实际面试中的问题,有没有确实命中的一些面试中的一些真正的面试题
25. 对你来说,现在比如经验完经历完这场面试之后,你觉得你的 SKILL 应该如何提升呢?
26. 你理解什么叫 CAS?
27. 那它和悲观锁有什么不同?那首先第一个问题就是纯靠CAS就能解释就能实现这个乐观锁吗?
28. 解释一下volatile的这个关键字的目的和作用
29. 既然我们提到了CAS操作就一定能保证。并发更新的安全性了。那么我们为什么还要用 volatile 去修饰这个变量呢?这不多此一举吗?
30. 好,那继续问 CAS 里面会有什么问题?就它会有什么其他的什么问题呢?
31. 你了解 CAS 的 ABA 问题吗?
32. 讲一下怎么解决就可以了
33. 那现在回到这儿来说就是有乐观锁和悲观锁两种锁,对不对。那么,我什么时候要选择乐观锁?什么时候要选择悲观锁?你看,我们知道 JDK 里面 synchronized 的关键字是悲观锁,对吧?而 ReentrantLock 是个就是这种我们一般认为是 CAS+volatile 这种乐观锁的方式
    那么这两种方式的话,你觉得我们在应用中。什么情况下会采用乐观锁?什么时候要采用悲观锁?
34. 为什么? 
35. 这个我知道好,那现在问一个问题 就是说,既然高并发情况下用悲观锁就很好,那我无脑用悲观锁不就完了吗?
    就是既然说。乐观锁有就是说并发高了,它就不行,自选浪费 CPU,对吧?那我无脑用悲观锁,不就 OK 了吗?不挺好的吗?
36.那还有一个问题,就是我们刚才说的这些并发的处理的方式。都是基于一个理念叫共享内存,对吧,相当于都是无论是悲观锁还是乐观锁,我们都相当于是要在对象上加锁,然后限制一些线程的进入和退出,对不对。 那么有没有别的方式照样可以实现并发更新的?并发更新的这样的一个方式,就除了共享内存方式,还有没有别的。比如说或者说我这么说吧,就全世界上处理同一个数据的多线程更新的这个问题,只有乐观锁和悲观锁两种方式吗?
    是非阻塞不能处理吗?因为不管是哪个锁,其实都会进入到一个阻塞的状态,对吧?必须是通过阻塞的方式才能搞实现多线程对同一变量的更新吗?
37. 手撕环节:[电话号码的字母组合](*******************************************************************)
48. 反问环节
#我的求职进度条#
全部评论
电话号码不是只有数字的嘛?
点赞 回复 分享
发布于 昨天 19:52 陕西

相关推荐

📍**面试公司**:快手🕐**面试时间**:03/13💻**面试岗位**:java❓**面试问题**1. 可以做个简单的自我介绍。2. 问毕业时间3. 问实习地点4. 以后预期是在北京工作吗?5. 你比较熟悉的是哪个项目?6. 列一下你比较熟悉的一个项目的表名、索引、设计用意。7. 为什么这两个表要分开?8. 有没有可能没有user表的时候有user_info表?9. 这两表的数据怎么生成的?从哪来的?10. 注册的时候会怎么做?操作两个表吗?11. 他可以不可以不绑定微信号?12. 那他可以不可以不填nickname和name?13. 所以你这个user_info表其实不能脱离user表存在,是不是?14. 那种表在数据库设计里面它叫什么?15. E-R两个字还记得吗?“丫丫”是什么的缩写?16. 你的user表为什么需要有个ID字段?17. 为什么不可以让user_info表里面有一个字段是user的ID?关联关系为什么反过来?18. 两个表互相关联是最好的吗?你觉得哪种方式最好?19. 那还需要ID这个字段吗?为什么选这种方案而不选你原来的设计?20. 你的方案怎么选择?为什么选某一种?在什么场景下选?21. 向量召回中,embedding是用什么做的?22. 关键字加向量语义的混合是怎么混合的?23. 搜索结果里面用哪个?24. 你们会去干预排序算法吗?排序的分值?25. 这个RAG检索底座是作为给大模型智能排错的一个工具使用的吗?26. 从0到1构建以及增量更新,耗时大概什么量级?27. 简易数据库是公司的项目还是学校的课程设计?28. 说说PG SQL和MySQL的区别?29. 可重复读隔离级别是怎么实现的?30. 算法题:把二叉树用字符串存储,再写方法解回二叉树。(手撕)🙌**面试感想**感谢快手给我双非一次机会,虽然我也没把握住🥲,答得很烂,数据库理论什么的完全没准备。算法不是hot100但是不难,力扣原题。最后毫不意外的挂了。
查看30道真题和解析
点赞 评论 收藏
分享
评论
2
3
分享

创作者周榜

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