面经 - 深圳同行者
深圳同行者 – 技术面面经
情报
- 约的面试是下午 3 点,签到的时候就发现有好些人都是去面试这家公司的,有 Java,有测试,有实习。
- 到了之后公司门口的会客室一堆人在做笔试题,面试 Java 的人比较多,我笔试的时候对面坐的人也是面试 Java的
- 面试有两轮,第一轮问八股多一些,第二轮会结合场景问实际应用
笔试
三道算法题,一道sql题
算法题没有给出方法签名
- 有 1000 个数,取值取值范围是 [0, 999],其中有两个数出现了两次,要求找出这个重复的数
- sql 题,题目比较长,题目就不写了,需要用到 group by,having 以及 聚合函数
- 设计一个程序,可以让两个线程交替打印从0到n的数字
应该是 LeetCode 原题,这会儿没找到是哪个原题,但印象中我做过
- 打印26个小写字母的所有不重复排列组合,每个字母只能使用一次,类似于a,ab,abc这种都算是一个合法的组合
一轮技术面
面试官问
数据冷热分离是怎么做的
开源项目的 star 是多少
笔试第四题的结果数量有多少
二轮技术面
二轮面试的面试官就在面试的等待区面试,其他人是可以听见面试的过程
不过二轮面试的面试官对每个人问的问题不尽相同,我面试之前这个面试官对另一位面试者问了笔试的第 3 题,也稍微深入问了下 gc
对于公司批量通知十多个面试者同一时间段来笔试的行为我心里有点不爽,对于二轮技术面的面试官直接在面试等待区面试的行为我表示贵公司没有对面试者给到基本的尊重
面试官问
谈谈你对 CAS 的理解
这里我回答,基于 CAS 的轻量级锁比重锁更节省系统资源。然后被面试官打脸了,后面面试官一步步引导我玩正确的方向回答
你是如何分析 jvm 的 dump 文件的
笔试第一题我使用数组计数的方式来做的,也可以换成使用 map 来计数,面试官要求使用 O(1) 空间复杂度求解,需要现场写,面试官就在旁边看着
有没有自己搞过一些开源的工具类
开源项目中使用的 netty 是做什么用的
有没有在 gateway 中进行限流
是否有独立负责的微服务项目
最近一个项目的架构图,需要现场画出来
有一个接口需要做限流,每天每个用户有额定的调用次数,然后随后系统还有一个总的调用次数,调用次数达到这个用户的调用次数或者达到总的调用次数上限都要做限流,你的方案是什么
进度
二面的面试官说,差不多两天会给通知