自我介绍面试官看我的简历 (苍穹外卖翻版),说说springboot了解多少(提了一下springboot的特点:自动装配)你刚刚谈到第三方包的starter,讲一下它有什么用 (解释了自动装配原理 spring.factory)讲一下websocket (项目中用了,websocket是长连接,不用的话客户端可能得轮询)介绍java的集合类 (从collection下的到map下的我说了一大堆)map的put和get方法(主打的就是hash code,讲了一通)map能放对象吗(其实上面讲的时候已经提到了,讲得太多了面试官没注意)treeset和hashmap区别(没太懂,我说treeset的红黑树要排序,面试官就直接问下一个问题了)如何将集合变成线程安全的(Collection工具包)如果不用那个有没有线程安全的(concurrentHashmap)讲讲多线程,项目中那里用了多线程(redis逻辑过期的时候,另外开了线程来更新)我突然讲到redis的缓存击穿相关内容,面试官不太懂,问redis的键过期不是会自动删除的吗?讲讲mysql,讲讲索引(我不太知道从哪里讲起,谈了一下分为聚簇索引和非聚簇索引)两个有什么区别(分别按主键、其他列的来建B+树,但是前者信息节点包含全部数据,后者不包含,自己又扯到索引覆盖)mysql数据表数据数量限制(当时不太懂意思,我问是分库分表吗,面试官说是直接下一个问题)还会什么,我说懂一点微服务问我的理解(讲了一下微服务的思想以及多体间数据共享的问题,提了分布式锁,但是没问,我的项目是单体的,解释了下微服务才刚学不久)微服务之间是怎么通信的(feign,rabbitmq,blockingqueue等,顺带讲了一下他们的区别)问JVM会不会(我说只费一点点,我JVM跟康师傅学的)谈一下垃圾回收器(我从单线程gc回收器,讲到多线程垃圾回收器,顺带讲了一下CMS,G1,ZGC,不知道他喜欢听哪个方面,怕冗长每个没敢太深入)手撕题目:写生产者消费者当晚收到二面预约,虽然最近的周日也能预约面试(这加班太狠了),我还是果断选择周二最晚那个时间段总结起来,听说小米比较喜欢问八股,面试和手撕难度不大,确实如此,但是听说工资也不会高,许愿OC