今天下午面的北京链家现场面,虽然凉凉还是总结下面经吧~
链家:
一面:
拿出手机问我笔试做错的一道笔试怎么分析,提醒了半天我也没想到(实际是拆装箱相关的知识)
springbean生命周期
mysql范式
java类加载流程
outofmemory排查(问了具体命令,不会...)
linux用过什么命令
linux日志查找特定关键字查询
jmm内存模型
java单例有哪几种
java特性中继承的作用,举例
多线程如何解决死锁
线程池的作用
多线程异常处理
二面:
5min尬聊,跟没面没区别
hr:
5min尬聊,清明节前出结果
总结:
一面由于笔试题没想出为啥和多线程排查命令直接崩盘,后面还有一两个面试官不满意直接gg,后面估计走个流程基本就懒得再面我了,吸取教训~
阿里:
一面:
简单问了问多线程,之后怼项目
问:支付宝回调时回传失败如何处理
答:订单支付根据订单id更新无问题,充值生成id防止重复充值
问:如果回调后本机服务处理过慢支付宝又回调怎么办
答:使用分布式锁
问:分布式锁怎么实现?
答:mysqlrediszookeeper
问:找一个说下
答:redis
setnx
问:获取锁挂掉怎么办
答:setnx时设置过期值
问:脑裂怎么办
答:存储获取锁的对象,恢复后检查持有锁的是否为自己,不是则回滚
问:你项目中token怎么防止别人攻击认证系统
答:jjwt可以验证是否为自己生成的,不是则不去查询redis
问:具体原理是啥
答:不会,告辞
问:redis缓存了解么?
答:没用过但是了解
问:知道缓存穿透么?怎么解决
答:对查询进行验证,短时间缓存空值,顺便聊了缓存雪崩的解决方法,缓存设置过期时间随机分布
菜鸡加面,简称菜面(太菜才会加的面,一面多线程那块出了个低级错误)
在线编程,多线程轮流输出,提交后面试官提了个问题,解决了后结束
二面:
问:mysq使用多个索引的查询怎么运行
答:and交集
问:or呢?
答:只知道or会出问题不知道为啥(大脑一片空白,实际上是or带了非索引会出问题)
问:订单id量大怎么解决
答:消息中间件缓冲,分奇偶生成id,分片生成id(实际为事先生成好)
问:尬聊三连发
1.什么样能成为一个好的程序员
2.问题在同事间出现分歧怎么解决