前言
首先我想说的是,无论你现在什么年龄,位于什么城市,拥有什么背景或学历,跟你比较的人永远都是你自己,所以明年的你看看与今年的你是否有差距,不想做咸鱼的人,只能用尽全力去跳跃。明天的你会更好!
一面
1.项目为什么要用消息队列?改成异步接口不行吗?
2.消息可靠性,消息重复消费。如果消息丢失,你应该怎么尽量地让用户觉得此次下单的
公平性?
- Redis 性能为什么高?Redis的lua脚本,为什么能保证原子性?如果lua脚本在库存扣减
完以后执行出错怎么办?
4.项目如果要跟小公司进行对接,你会怎么做?
- JVM 内存布局?GC算法?
6.请从操作系统以及CPU指令(怎么操作内存的)的角度去解释为什么会出现线程不安全?
(答不出来,cpu 指令不会…,扯开话题扯去JMM了)
-
http里面包含什么?
-
两堆乱序扑克牌,要求合并成一堆有序的牌堆,怎么做?(归并+随便一个排序)时间复
杂度?
9.如果两堆1TB 的数据,要求合并成一堆有序的牌堆,怎么做?(归并+内部排序,分而治
之)
10.回到扑克牌的这个主题,要求把一堆乱序的扑克牌进行排序,如果要极致地压榨性能,
应该怎么做?时间复杂度能达到多少?
最后就是反问。
二面
-
UDP跟TCP的区别及场景?
-
Mysql三范式?为什么会有这三范式?
-
缓存中间件了解吗?Redis,Memcache?(缓存中间件广度)Redis有多少种数据结构?
应用场景?为什么高性能?
-
zk了解吗?(注册中心广度)
-
kafka 了解吗?(mq广度)(介绍了卡夫卡在他们业务上的使用)
6.微服务设计思想?为什么需要这样设计?好处?
7.了解过Golang 吗?说说你的使用感受以及理解?
三面
自我介绍
对项目产生质疑,全程是你自己做的还是手敲别人的?然后问了分布式session?单点登
录?SSO?springSecurity原理
你觉得你自己做的项目中你最擅长的是哪一部分
看我项目中有验证登录,问了sql注入问题,同时问了MyBatis的预编译,为什么要预编译,
如何做解决预编译的方案,MyBATIS如何来解决预编译的,你觉得你自己设计如何改善预编
译?
开始问关于HTTP在springBoot的相关注解还有区别,可以用什么代替,会出现什么问题
tomcat启动,部署方式,如何选择自己的tomcat
servlet与tomcat 的比较,service的容器
问我知不知道spring监控器,监视所有Spring Boot微服务?什么是CSRF攻击?
手撕一个代码。如果想要一个key对应多个Value的话,怎么设计Map
继续深究,你这个复杂度有点高,能不能解决一下,之后我就用了NoHttp里的MultiValueMap
他问我,你知道NoHttp作用是什么呢?应用场景主要是在哪里?
创建一个对象HashMap<Integer,Integer> map=new HashMap<>先put(100),然后get(new
Long(100))结果是多少?
JDK的hashmap与Redis的hashmap的区别
转而问Redis,Redis为什么要使用,我回答了一个缓存的劣势,他就问,为啥缓存就不行,
还有缓存的几种机制
Redis 是多线程还是单线程,我说了,Redis2.8之后支持多线程,问我为啥一开始是单线程,
之后是多线程,又问那既然单线程能做的这么好,多线程不是浪费呢?
删除策略,手写LRU
zset 的存储过程,zset的底层数据结构是啥
什么是渐进式hash?动态字符串与C语言自带字符串的区别?
Redis事务跟Mysql事务有什么区别
Redis会不会变慢?怎么解决这个问题
Redis的分布式锁还有他们的缺陷,如何改善
做题,忘记是什么题了,没做出来
反问
面试资料总结
下面先给大家上一个总的目录大纲,基础的东西就不进行过多的赘述,我们将会从面试必问的说起,同时由于每篇的内容过多,我们也只说重点,太过基础的内容谁都会,我就不多敲字浪费大家的时间了!
有需要的朋友点击这里自取就好了,希望资料对你帮助!
SpringCloud
Redis
JVM
MySQL
Zookeeper
Kafka
最后
由于文章篇幅有限,PDF的内容又很多,全部手敲下来很累…所以需要阅读阅读学习的,大家“一件三连后:“查看下方””即可拿到手之后自己学习吧,博主真的打字打累了。
有需要的朋友点击这里自取就好了,希望资料对你帮助!
预祝大家前程似锦,工作顺利!