一面4.23 1h1.自我介绍2.TCP/IP五层模型,tcp和ip分别是哪一层3.udp与tcp的区别4.https与http的区别(主要讲了ssl握手)5.为什么tcp是三次握手,但是挥手却是4次6.Java常用的数据结构(讲了ArrayList和HashMap)7.ArrayList和LinkedList的区别、优缺点8.使用for循环对链表遍历删除和插入会出现什么问题9.HashMap的扩容机制10.ConcurrentHashMap为什么是线程安全的11.redis使用过的数据结构(基本都用过)12.讲讲zset的底层实现13.讲讲redis的RDB持久机制(回答了原理,但是面试官说其实是想让我回答开启rdb的时间间隔该怎么设置,没太搞懂。。。)14.讲讲缓存击穿以及解决方法15.布隆过滤器的原理,以及怎么解决redis缓存问题的16.场景题:两个key值经过布隆过滤器后映射了相同的位置,然后一个key被删除后,那么另一个key访问布隆过滤器后就会被拦截,如何解决17.声明式事务@Transactional什么情况下失效18.场景题:电影院买票:三个表:电影票表、用户金额表、电影院金额表,问这三个表怎么操作才能保证效率更高?(面试官一直在引导,好在最后达到点上了)19.mysql的默认引擎是什么,有什么特点20.innodb除了行锁、表锁还知道哪些锁21.主键索引为什么比非主键索引快22.你如何排查慢sql,explain里面你所了解的字段23.项目中用到mq,问了RabbitMQ如何保证的消息不被重复消费以及三方如何保证消息的可靠性24.场景:如果突然有大量请求进入mq,此时如何解决这些消息的正常消费呢25.项目遇到的难题以及如何解决26.springboot自动配置原理27.手撕:最长前缀15min28.对小米有什么了解4.24 约二面4.25二面全程问项目和项目引申出的场景,八股就问了反射和ThreadLocal。手撕反转链表(面试官真的特别好,问我熟悉啥结构)问了些个人情况。全程40min左右,面试官口头跟我说他这边过了,让我等hr,许愿一定要等到hr电话和offer更新4.28终于等到hr电话oc许愿审批顺利通过,然后拿到offer