虾皮ESP 后端开发 两面技术 + 一面HR
Base 深圳,业务是数字银行
时间线:9.3 一面;9.5 二面;9.6 HR面;9.9 OC
一面
实习经历
实习小组做的 RocketMQ 是做二次开发还是平台 —— 都有
工作职责
延时消息;怎么用时间轮算法开发的(看了半天八股结果忘了准备这个简历上写的东西了笑死)
为什么要二次开发而不是用 RocketMQ 自带的功能(基于旧版本开发的,升级版本是不可能的)
怎么解决 OOM 问题的;用的什么工具;具体怎么排查的;
八股
JVM
JVM 内存结构
虚拟机栈里面有什么;本地变量表存的是什么
new 一个对象的过程
哪些场景会出现 OOM
用的什么垃圾收集器;垃圾回收过程;G1 回收器特点
标记清除和标记整理的区别;出现内存碎片会有什么问题
还有什么别的回收器;CMS 回收器特点
MySQL
MySQL 用的什么版本
InnoDB 索引
索引失效
四个隔离级别
可重复读解决了什么问题
MVCC 什么原理
幻读是什么;怎么解决
多线程
用了什么线程池
怎么创建线程池的;线程池参数
用了什么工作队列;是无界队列吗
设计模式
常用的设计模式
工厂模式和简单工厂模式对比
策略模式如何实现
计网
七层协议;TCP 位于哪一层
TCP 三次握手和四次挥手
手撕算法
是 ACM 模式,要自己写 Main 函数、导入包,可以不用命令行输入直接在 Main 里面写几个用例,然后命令行输出结果
LC61 旋转链表
二面
实习经历
实习具体做了哪些工作
为什么不用 RocketMQ 原生的延时消息而要二次开发;二次开发改的哪里的代码
时间轮算法怎么实现;怎么持久化;多节点之间如何维护;Master 节点挂了会发生什么情况(开始胡说)
时间轮用了什么数据结构;有没有容量限制
消息重复有哪些场景
RocketMQ Rebalance 听说过吗(没有)
你写的用户文档具体哪些内容
如何理解 RocketMQ 的开源与二次开发;项目初期在计划时候如何选择版本;如何考虑是否自研
项目
接口出现性能问题之后的分析思路(只讲了后端问题,面试官补充前端也要考虑)
八股+场景
HTTPS ;TCP 三次握手和 TLS 握手先后顺序(没背)
证书有什么用
HTTP 1.1/2.0/3.0 对比
一个接口只支持 HTTP 2.0 该怎么做
自己搭建服务,如何对外暴露接口
用过网关吗?Nginx 如何加入 TLS 协议支持(还谈了一下我用过 Caddy)
有没有接触过 QUIC 协议(我说我有看到网上的教程说关闭浏览器 QUIC 协议能提升油管看片速度)
手撕算法
LC22 括号生成
闲聊
未来工作规划,做什么行业什么角色
有没有了解过数字银行(面试官说就是没有线下网点的银行)
之前怎么没有找工作;为什么选择不保研了
HR 面
(没有录音以下是回忆)
自我介绍
家住哪里,工作城市为什么选深圳,父母意见
为什么不保研了;之前有没有参加校招
如何评价自己/看待自己的性格
实习工作中最困难的事情(me: 和人沟通交流)
压力大的时候如何缓解
对薪资有什么期望
#虾皮##Shoppe##虾皮ESP#