58同城后端二面(40min)
10.28 面的。40min 里面至少 20min 在搞那破算法题,难受。
-
讲讲你实习都做了什么东西,或者你觉得哪些技术比较难的点,或者你的体会咋样啊?
-
如果数据更新了,那本地缓存是怎么更新的啊?
-
你在里面用到了哪些技术点呢?你就是你用到了哪些框架和组件呢?你觉得你对哪块儿也比较深,或者是你对哪块比较感兴趣的,可以深入聊一聊的。或者是你最近在学什么东西啊,或者是在研究什么东西?
-
你在写 RPC 的时候,你觉得哪块东西是它的重点呢?
-
你的 RPC 是用什么序列化的,系统之间是如何去通信的?
-
你实现的各种序列化协议,它们之间有哪些优缺点呢?
-
那你底层是用哪个框架组去序列化的呢?
-
你简历上面写的用编辑距离实现了匹配相似用户的功能,这推荐是什么东西?
-
这会不会太简单了啊?那你权重是怎么加的?
-
那你权重是怎么打的,你清楚吗?问题是具体的你是怎么算出来的?
-
那你具体的评价相似度的依据是什么?
-
字符串比较?这语言上的差距,这种比较怎么能比较出来呢?
-
你清楚里面的那个算法是什么吗?就是为什么会把相似度放在一起?(我说白了,我白说了,就是编辑距离算法,用动态规划算的啊)
-
那这样你都说了,打开屏幕编辑吧。简单一点,有一个对象,里面有 scoreValue 和 id,刚才你不是说取 top N 嘛,然后给你一个无序的对象数组,返回前 n 个对象的 id 就可以,你用伪代码之类的实现吧。
-
你实现个 top N 就行了,你看一下怎么能最高效的找到。反正核心点就是,因为我只给你一个 n 嘛,你没必要把整个都排好,只需要找到前 n 个退出就行了。
-
那你最近在研究什么东西,我们可以聊一聊的。(JUC、JVM)
-
那我说锁啊,我们加锁的方式有哪些?
-
哪个 ReentrantLock 可重入锁和普通的 Lock 有什么区别吗?
-
具体的实现方式有什么区别?底层原理有什么区别?
反问环节:
行,那你对我们这儿有什么想了解的,有什么想问的?或者你希望我回答你什么信息呢?
-
你所做的业务方向?
a. 招聘板块。
-
需要提升的地方?
a. 没有关系,怎么说呢。可能我问的比较突然,你这个一下子就短路了,其实还好吧。
-
后续的流程?
a. 如果通过的话,HR 会联系你,如果没有通过,可能就那啥了。
怎么说呢,感觉整场面试下来,就是在纠结我项目里面的算法实现。
我又不是专门搞搜推算法的,我只是用自己学的一些算法知识实现了一个简单的推荐算法。面试官就巴不得问到我代码是怎么写的,我有一段时间没看代码了,我哪记得那块是怎么写的,反正实现的逻辑我都讲出来了,你还要我怎么样?
牛友们帮我看看:给定一个无序的数组,如何快速的找到前 n 项?
我想到的就是遍历存大根堆,面试官要求找到前 n 项就停下来,后面的就不用管了。
可是,如果我不全遍历完,我怎么知道后面的值会不会比现在的更大呢?面试官一直问我有没有更优的,我真不知道😭😭
感觉是凉了。晚上睡觉都在想,不是他有bing吧
#软件开发笔面经##校招##秋招#