背景:双非本科,一段两个月小厂实习经历,力扣650道题左右,直接准备秋招,提前批成功oc,复盘还愿一下。项目是烂大街的RPC。
一面 45分钟
自我介绍
讲一下HashMap的put方法
讲一下HashMap的扩容过程
讲一下你自定义协议怎么解决粘包问题的?
LeetCode129题(求根节点到叶节点数字之和,回溯)
mysql的索引结构
为什么用B+树呢?
having的作用
聚簇索引、非聚簇索引
聚簇索引比非聚簇索引的优点
线程池的七大参数
线程池的运行过程
mysql的四个隔离级别,应用场景
如何在可重复读隔离级别解决幻读问题
怎么使用间隙锁?(for update)
dubbo的负载均衡策略
java的动态代理
Spring哪里用到了动态代理?
CGlib动态代理说一下
MQ如何保证消息不会丢失?
总结:
整体来说一面偏八股,不会有太多很难的点,整体下来挺顺畅的。
二面 80分钟
因为我是RPC项目,所以二面前面闲聊后,主要针对项目进行深挖
自我介绍
平时是如何学习的?
看过哪些经典的书籍?
挑一个你的项目中最有深度的来讲一下
Nacos和Zookeeper的区别
如何考虑选择哪一个?
Zookeeper是如何发现服务下线的?
那我要是断电了怎么办?(没太明白,面试官说断电了机器还会在跑,不会关闭)
实现的负载均衡策略
Protobuf底层有了解过吗?
索引的底层
你是如何选择什么字段来做索引的?
假如现在有三个普通索引a,b,c,我sql查询where a = xx and b = xx and c == xx会怎么样?(索引合并)
那如果不想索引合并呢?(直接(a,b,c)联合索引)
隔离级别
MVCC
写道sql,挺简单的,大概写出来给他看一下就ok了,不用运行
算法题:圆环上有10个点,编号为0~9。从0点出发,每次可以逆时针和顺时针走一步,问走n步回到0点共有多少种走法。(dfs和dp都可以)
总结:整体来说二面就偏项目了,问了挺久的RPC,之后加上一些数据库的问题,然后两道题做完就结束了。
三面 30分钟
软工和计科有什么差别吗?
那软件项目管理,软件需求分析这些课都有上吧?
讲讲软件项目管理过程?还记得吗?(说了需求获取、需求分析、概要设计、详细设计什么的)
打过什么比赛?
你做的项目大概是咋样的呢?
前后端怎么对接的?
项目除了页面的一些功能还有做什么其他功能吗?
做过压测吗?
MQ的工作流程
MQ的底层
MQ如何防止消息不丢失?
MQ消息大量堆积怎么办?
未来打算学哪一块的知识呢?
做个题:类似力扣第三题(无重复字符的最长子串),只不过是数组不是字符,简单滑窗
总结:三面大部分在聊天,后面扯一扯MQ上面去了,然后就做了个题,做完之后就结束了,全程挺愉快的。
已经收到意向书。因为是提前批,该部门没有HR面,三面完就直接意向书了。
复盘
首先基础部分需要完整地答出来,并且可以将细一点拖面试时间,以免面试官提问到你不会的点。
要善于引导面试官问你所擅长的点,这样子在你熟悉的范围你可以多答很久。
遇到不会的问题记得多和面试官讨论,然后尽量回答一些沾边的技术点,不要支支吾吾或者说不懂。
讨论
给一些高频的问题:
MQ的一系列问题,有必要整理一下,如消息如何不丢失,消息重复消费,消息大量堆积,MQ的底层原理可以梳理一下。
RPC框架的话经常要和dubbo、grpc比较,可以准备一下,同时一些服务注册、发现的问题也挺经常问,还有序列化框架的底层等等。
字节的话算法题一定要做出来哈!codeTop多刷点高频题吧!
感谢阅读,希望对你有所帮助 :)
来源:https://www.nowcoder.com/discuss/711241?channel=-1&source_id=profile_follow_post_nctrack





