大家好,我是帅地。
最近有粉丝,部分在投递提前批了,也有一部分,同时也在投递实习,混一下面试经验,因为之前没怎么面试过,所以打算先找一些小厂锻炼锻炼。
以为小厂可能就问的很简单,比如问一问 java基础,框架啥的,没想到问的还挺难,第一次面试本想找小厂练一练,没想到被面试官吊打了。
下面是粉丝分享的小厂面经,大家可以感受一下:
面试过程记录
1、自我介绍和项目描述
简单自我介绍,然后项目做了什么东西,用了什么技术栈 (项目没怎么复习答得不太好) (括号内是后面自己修正的回答)
2 高性能购物车怎么实现的
用户添加购物车的时候再redis上面写购物清单,购物车没有存储在mysql
3 redis上存什么
一个string,对象转成的string,里面有购物车商品内容和价格这些必要数据
4 redis挂掉相当于没有了
其实购物车这种数据是可以允许丢失的,丢失不会产生很大影响,又没有锁定商品
5 订单模块怎么做的
分成两个系统 一个是业务系统另一个是订单系统。(这块有点说胡话了,突然忘了流程了)
6 微信怎么告诉你支付成功了
通过微信的回调
7 订单的是怎么回事(相当于5的理一下再说)
用户点击提交订单之后会发送请求到我的订单模块,这个模块会用订单号请求微信平台,微信支付返回一个支付链接,我会生成一个二维码返回到前端
8 这个支付链接没有存储的画,客户如果切掉后怎么办
(这块也说胡话了,后面他引导我:取消支付后每次都要重新生成订单吗)
订单有存在数据库,订单生成过程中有锁定库存
(继续引导:所以你这个微信返回回来的支付链接每次都是一样的吗)
对,订单号一样就一样,因为请求微信支付的链接时,需要一个唯一订单号
(继续引导:那么一个已支付的订单,如果请求会发生什么)
只要是同⼀个订单是没办法进⾏重复⽀付的。(问我有调过这样的case吗,我老实说没有,但是文档有说)
9 介绍一下那个点评平台,你加了什么(说这个很多人做….)
引入了rabbitmq。一开始是用redis的mq,防止消息重复消费上:用redis来去重
处理消息失败(或者说订单写入mysql失败):在redis上统计消费次数,超过三次就拒绝消息,拒绝后会自动发送到死信交换机
10 为什么不本地统计呢
可以的
11 如果有一个系统只能处理一次订单,你会怎么设计
处理失败就拒绝,拒绝他会自动传到死信交换机,这样消息就被持久化了
12 上游消息的传递可靠性 下游怎么防止重复消费
如果是rabbitmq,上游:传不到死信交换机可以开启callback 如果传不到路由键可以开启returncallback 下游防止重复消费使用的是redis统计消费次数,统计的key是订单号,因为是唯一
13 秒杀的库存管理和限购怎么做到的
(一开始有点说胡话了,后面他引导我还是说出来了)对于秒杀业务,先更新redis库存这些,再异步更新mysql 对于普通业务先写mysql再删缓存
14 redis更新成功,但是更新mysql失败(这个其实我没有解决) (面试完之后我去解决了一下:如果mysql订单创建失败 )
15 缓存穿透雪崩击穿问题
(这个正常答)
16 mysql事务隔离级别
(这个虽然解决的问题是什么记得但是紧张到忘记了四个隔离级别的名字了!很尴尬) (还是让我说了幻读是怎么解决的)
17 幻读怎么解决的
mvcc+倒数第二个隔离级别+行锁可以解决幻读问题
18 mvcc是一个什么概念
mvcc是基于undolog的一种版本管理机制 (实际概念应该是通过数据行的多个版本管理来实现数据库的并发控制)
19 undolog存的是什么
我举了个例子就是比如update了一个数据,undolog会存update之前的数据以及他的一些其他的比如事务ID的字段
20 undolog是什么样的形式保存的
链表保存(太深层的涉及里面的结构的我都忘了,就答了链表)
21 binlog什么用
数据恢复和主从同步22 redolog binlog哪一个是数据库应用层哪一个是存储层
redolog是存储层的 binlog是也是存储层的 undolog不是存储层的(不知道对不对)
23 索引下推是什么概念
(我感觉我懂,但是回答不太清楚,他让我再去查一查。。。。)
24 高级消息队列的推拉模式
不懂
25 分布式大数据有了解码
不太了解
26 深浅拷贝
(又短路了,结结巴巴说了一下大概意思就是内部的属性也要完整的拷贝,而不是只拷贝引用,常用方式是序列化和反序列化)
27 java怎么创建多线程
Thread类 实现Runable接口 callable接口
28 四次挥手
29 fullGC什么时候发生
只说了老年区不够的时候(这是真的忘了,要复习!)
30 两个栈实现一个队列
没有写出最优解(回头一看真傻逼)
31 给你三个数的数组,排序
问了两次是三个数还是n个数 n个数直接桶排
3个数直接暴力排还需要什么?
转载自公众号IT服务圈儿
版权声明:探学网所有内容(文字、图片)均由用户自行上传,仅供学习交流。若内容造成侵权、违法违规或与事实不符,请联系我们