技术面总共三面,最后挂在了最后一面上,挺可惜的,哎~
工作两年,这里主要总结一下整个面试过程,自己做个自我总结,制定之后的学习计划吧,有需要的人也可以看看:
8月21号收到阿里妈妈事业部的面试通知,当天面试官就和我约了第二天下午4点的电话面试.二面在第二天,三面隔了两周.
一面总共进行了80多分钟吧,问的都是技术上比较基础的东西,主要是涉及的范围比较广.
印象中大概有:
先自我介绍
看了我的项目经历问了一些项目上的东西,这一块问的特别细,比如:
订单状态机怎么设计
状态表怎么设计
状态怎么扭转
如果有两个节点怎么扭转
状态机扭转有问题怎么办,比如付款失败变成成功的了状态怎么处理
linux常用命令,比如怎么看日志,cpu,内存.
redis
redis有事务吗
redis数据双写一致性问题
redis锁的设计
如何避免死锁
redis在项目中的使用
其他的还包括一些开放性的问题,这里面有些是他们现在现在正在遇到的问题,说说你的想法.
比如高并发积分系统的设计,会员积分 总共积分池10万 用户每次积分加减都是实时的 你怎么设计.
设计模式相关
设计模式你的使用
设计模式在你看的开源项目里的应用,这里我就说了我看的zookeeper,spring,tomcat里的一些应用.
常见的设计模式,比如策略模式等等.
一个外部接口经常变化,用什么模式.
UML相关
你写代码之前会做哪些设计,画哪些图等等
项目的类代码结构,你写代码怎么设计这些包.你怎么分层的.
java异常相关
空指针你怎么解决的.
数据库扛不住 分表
根据你写的简历 一面二面范围 三面四面深度 还有交叉面 中间一周到两周
数据结构
树相关,堆排序
数据库
事务
如果转账 a到b 加减 不会慢吗,要是加事务,事务的隔离级别怎么选.
索引
锁
分库分表
请求量大 应用扛不住 怎么分析
消息积压 监控 cpu告警 io 慢查 线程池
Java类加载机制,Tomcat的类加载拓展,java双亲委派机制的作用
spring生命周期
spring aop
spring事务
JDK动态代理 和 cglib动态代理的区别
spring你自己做的拓展
你做过数据分析吗
jvm 永久代 常量池 堆
常量池GC
nio和bio区别
DDD领域驱动设计
你怎么看开源项目
除了java其他爱好
分布式配置中心的设计
订单全流程包括业务
zookeeper相关
zk事务请求,watcher机制,如何保证所有client都能收到watcher通知.简单的说事务请求的关键步骤 proposal 和 commit.
zk权限机制,acl.
zk做什么用的
线程死锁 为啥会死锁 死锁怎么分析
mysql慢查 执行计划
日志怎么查,你们用的有哪几种
一面主要问的问题覆盖面特别广,基本上你哪个方面比较熟哪个方面不太熟的都知道了.一面的时候总体回答的还行吧,一些不熟悉的点都跳过了.面完之后第二天我联系了一下他们,没想到直接下午安排电话二面.
二面主要结合技术问了项目相关的问题,面试过程持续了大概75分钟.
问了一些并发包里的内容
泛型
http状态码
http和https区别
session和cookie
配置中心的作用和实现
单点登录
你有哪些不该接的需求
你在项目中做过感觉最有成就感的事情
工作流实现(由于项目中涉及到了这个,问的特别多特别细)
缓存中心怎么实现
分布式调度
下单流程
微服务了解吗(这是三面的坑,哎,之前一直看过说不出来啊)
上家公司做了什么
日志相关
单元测试,集成测试
线上问题怎么定位
系统的整体架构
由于涉及自己做的项目的,基本上能说的都说了,当时觉得回答的还行吧,结果面试完一直没有通知,让等消息.
一等就等了两周才有消息.
三面是hr通知的,本来约的当天晚上就面试,然后自己有点事就推到下周了.在这一周里自己把简历里涉及的点都好好看了,但是三面好像不问这些,很无语…
现在回想一下三面问的都是技术的实际应用,已经不关心你懂不懂原理了,而是怎么去设计系统,这方面自己确实比较欠缺.
百亿级读,高并发高可用.
百亿级写,高并发高可用.
高并发无锁写设计cas.
微服务架构.
从浏览器输入url的一个请求的整个流程.
这几个是自己没回答好的问题,微服务相关和http tcp相关确实是自己没准备,看了说不出来,挂了挺可惜的…整个视频面试过程进行了65分钟就结束了.