58同城后端二面(40min)

10.28 面的。40min 里面至少 20min 在搞那破算法题,难受。

  1. 讲讲你实习都做了什么东西,或者你觉得哪些技术比较难的点,或者你的体会咋样啊?

  2. 如果数据更新了,那本地缓存是怎么更新的啊?

  3. 你在里面用到了哪些技术点呢?你就是你用到了哪些框架和组件呢?你觉得你对哪块儿也比较深,或者是你对哪块比较感兴趣的,可以深入聊一聊的。或者是你最近在学什么东西啊,或者是在研究什么东西?

  4. 你在写 RPC 的时候,你觉得哪块东西是它的重点呢?

  5. 你的 RPC 是用什么序列化的,系统之间是如何去通信的?

  6. 你实现的各种序列化协议,它们之间有哪些优缺点呢?

  7. 那你底层是用哪个框架组去序列化的呢?

  8. 你简历上面写的用编辑距离实现了匹配相似用户的功能,这推荐是什么东西?

  9. 这会不会太简单了啊?那你权重是怎么加的?

  10. 那你权重是怎么打的,你清楚吗?问题是具体的你是怎么算出来的?

  11. 那你具体的评价相似度的依据是什么?

  12. 字符串比较?这语言上的差距,这种比较怎么能比较出来呢?

  13. 你清楚里面的那个算法是什么吗?就是为什么会把相似度放在一起?(我说白了,我白说了,就是编辑距离算法,用动态规划算的啊)

  14. 那这样你都说了,打开屏幕编辑吧。简单一点,有一个对象,里面有 scoreValue 和 id,刚才你不是说取 top N 嘛,然后给你一个无序的对象数组,返回前 n 个对象的 id 就可以,你用伪代码之类的实现吧。

  15. 你实现个 top N 就行了,你看一下怎么能最高效的找到。反正核心点就是,因为我只给你一个 n 嘛,你没必要把整个都排好,只需要找到前 n 个退出就行了。

  16. 那你最近在研究什么东西,我们可以聊一聊的。(JUC、JVM)

  17. 那我说锁啊,我们加锁的方式有哪些?

  18. 哪个 ReentrantLock 可重入锁和普通的 Lock 有什么区别吗?

  19. 具体的实现方式有什么区别?底层原理有什么区别?

反问环节:

行,那你对我们这儿有什么想了解的,有什么想问的?或者你希望我回答你什么信息呢?

  1. 你所做的业务方向?

    a. 招聘板块。

  2. 需要提升的地方?

    a. 没有关系,怎么说呢。可能我问的比较突然,你这个一下子就短路了,其实还好吧。

  3. 后续的流程?

    a. 如果通过的话,HR 会联系你,如果没有通过,可能就那啥了。

怎么说呢,感觉整场面试下来,就是在纠结我项目里面的算法实现。

我又不是专门搞搜推算法的,我只是用自己学的一些算法知识实现了一个简单的推荐算法。面试官就巴不得问到我代码是怎么写的,我有一段时间没看代码了,我哪记得那块是怎么写的,反正实现的逻辑我都讲出来了,你还要我怎么样?

牛友们帮我看看:给定一个无序的数组,如何快速的找到前 n 项?

我想到的就是遍历存大根堆,面试官要求找到前 n 项就停下来,后面的就不用管了。

可是,如果我不全遍历完,我怎么知道后面的值会不会比现在的更大呢?面试官一直问我有没有更优的,我真不知道😭😭

感觉是凉了。晚上睡觉都在想,不是他有bing吧

#软件开发笔面经##校招##秋招#
全部评论
真的,该讲的我都讲了。要么是面试官没讲清楚,要么是我理解错了。剩下的看天意,秋招就是场运气的游戏。
1 回复 分享
发布于 2024-10-29 17:48 江西
算法题:快速选择?
点赞 回复 分享
发布于 2024-10-30 21:26 北京
一样的哥,搜推的面试官,也问了相同算法题。前面一直问我用的东西有没有看过底层代码,具体怎么实现,问麻了😅
点赞 回复 分享
发布于 2024-10-30 15:07 北京
哥你面的是哪个部门呀
点赞 回复 分享
发布于 2024-10-30 14:50 黑龙江
佬,中台吗?和我遇到的面试官好像
点赞 回复 分享
发布于 2024-10-29 23:39 天津
还是一个面试官,我感觉我也挂了,他问的有点抽象
点赞 回复 分享
发布于 2024-10-29 18:58 广东

相关推荐

1.自我介绍2.实习介绍,项目介绍,然后根据项目和实习追问,全程无纯八股,下面的项目中问到的一些八股内容3.有用到线程池吗,线程池应该怎么来用呢4.假设有一万个任务需要完成,主线程怎么判断这一万个任务是否执行完成,回答说可以使用countDowmlanch,具体解释了一下,然后又问还有没有其他解决办法,主线程应该执行什么操作5.如果说在分布式服务器中,有10000个任务需要交给不同的节点来执行,应该怎么设计和实现呢6.看你项目中用了本地缓存和Redis,怎么确保本地缓存和Redis的数据一致性,怎么确保MySQL和Redis的一致性,订单库存信息存在Redis中怎么确保一致性7.Redis和lua脚本怎么防止超卖的8.消息队列中怎么解决网络波动引起的订单消息丢失的情况9.怎么解决单个订单重复消费的情况10.多个线程同时消费一个未消费的订单这个情况如何解决11.消费者回调确认消息如何实现的12.回调通知代码层面怎么做的(围绕wait和notify来说)13.如果服务器宕机,怎么保证订单消息不丢失,详细回答了持久化机制,包括使用内存暂时存储并定时落盘,面试官又追问你这种情况只能尽可能减少消息损失,就是在代码层面,比如说生产订单这行代码刚执行完服务器就宕机了,这个损失怎么避免14.MySQL表记录很多的时候比如说有一亿个数据,怎么处理(分片,包括顺序分片和哈希分片)15.如果数据表分片后,比如说要查询同一个用户的订单,可能在不同服务器上,怎么保证数据库查询的效率呢16.数据库索引创建过吗,创建索引怎么考虑的17.如果在订单表要给用户创建一个索引,然后又要给商家创建一个索引,要分别根据用户和商家单独查询要走到索引还可以创建联合索引吗,这个回答的如果只根据一个字段查询,就无法使用联合索引,因为联合索引要遵循最左匹配,必须包含第一个索引字段。这时候面了30多分钟,到了十一点半了,估计面试官要去吃饭了,然后面试官就说今天面试就到这里,没有手撕和反问环节。
查看17道真题和解析
点赞 评论 收藏
分享
11-08 15:10
门头沟学院 Java
1. 实习项目介绍2. 你实习过程中有遇到感觉困难的事吗?3. 你觉得你实习过程中遇到最有挑战的事是什么?4. 那你讲讲你实习中的redis队列是怎么用的吧5. 为什么要用redis队列,解决了什么问题?6. 队列是怎么建立的?一个离线任务就对应一个队列吗?7. 什么时候同步任务的状态?如何同步的?8. 为什么要用分布式锁,分布式锁的key是什么?9. 那你这样说意思就是redis不是原子性的吗?10. 既然是原子性,那你取任务的时候我理解不会有并发安全,那你为什么还要这样用?11. redis队列中子任务实例的状态是如何同步的?12. 数据什么时候落库?13. 按你的说法,我执行任务的时候,查数据库不就可以看是否过期了,为什么还要单起一个线程去更新状态?14. 发送事件和消费事件的生产者和消费者分别是谁?怎么消费的?15. redis队列底层的数据结构是什么?16. 双向链表和压缩链表是怎么实现的,他们有哪些字段17. 为什么要用双向链表和压缩链表,他们查询的时间复杂度是多少?18. 那么redis队列是怎么把双向链表和压缩链表结合起来实现的?19. 虚拟内存有什么作用?20. 答了给用户感知的内存更大,追问还有呢?21. 那换个方式,进程切换会发生什么?22. 为什么进程切换消耗的资源更少23. 进程切换和线程切换有什么区别?24. 系统是如何创建一个进程的,比如你windos点一个exe文件,发生了什么25. 手撕一个正数乘法计算器,输入两个字符串,输出一个字符串
查看25道真题和解析
点赞 评论 收藏
分享
1.Java的字符串可以被继承吗?2.StringBuilder和StringBuffer的区别?3.Java 中String类的常用操作?4.new String("xxx")和直接赋值String s = "xxx"的核心区别是什么?5.new一个string创建几个对象?6.了解装箱和拆项吗?7.如果是一个interger a = 127, integer b =127,地址相等吗?8.如果需要重写equals()方法,那么hashcode()方法需要重写吗?9.hashcode()方法含义介绍一下?10.java 的io流了解吗?11.为什么有字节流还有字符流?12.文本存储是字节还是字符?视频存储呢?13.bio,nio,aio的区别是什么?14.arraylist和linkedlist的区别是什么?是线程安全的吗?怎么让它变成线程安全的呢?15.arrlylist和linkedlist的插入时间复杂度?16.双亲委派机制介绍一下?17.双亲委派机制是一种硬性规定吗?18.jvm的内存区域介绍一下19.jvm是怎么访问到一个对象的?都有什么方式?20.怎么判断一个对象是否活?21.线程池的工作流程是什么?22.线程池调优的基本方式都有什么?23.如果线程池中还有线程未处理但是这时突然断电怎么办?24.mysql的存储引擎都有什么?25. MyISAM 与其他主流存储引擎(尤其是 InnoDB)的区别都有什么?26.mvcc介绍一下?27.聚簇索引和非聚簇索引的区别?28.什么是回表?29.回表操作一定会在非聚簇索引中发生吗?
点赞 评论 收藏
分享
评论
6
6
分享

创作者周榜

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