60min,无手撕,以项目为主,抓着实验室项目狠狠的问,网上自学的项目一点不问,面试官人很好会引导着回答,但是我太菜了。对于项目,会首先引导着讲清项目的整体流程和业务需求,然后再引申相关的需求和场景,涉及到相关的八股可能会问一点:1. 项目中mysql怎样查询数据?Mybatis怎么用?在数据量不大的情况下,mysql查询本身就很快,为什么?B+树为什么快?和二叉树、B树比较?高并发且几亿几十亿数据量的情况下,mysql查询会慢,怎样优化?mysql分表大致按照什么标准来分?mysql加了索引还不够快怎么办?2. Redis做查询缓存怎么做?数据量很大的情况怎么放redis里面?大Key如何拆分?3. 微服务拆分原则?微服务优缺点?耦合度是什么?为什么要降低耦合度?4. 单机多线程情况下怎么保证生成的id是唯一的?高并发、分布式的情况下,怎样保证生成的id是唯一的?怎么保证不会重复生成?5. Synchronized和ReentrantLock原理?区别?Synchronized修饰方法和修饰代码块的区别?ReentrantLock的lock和trylock区别?6. 讲一下前端发送请求到后端返回,整个的流程,越详细越好7. 自由发挥,讲一讲自己觉得自己掌握比较好的知识点8. 反问环节