前言
面试
- 自我介绍
- 项目介绍 --(衍生出以下)-- >>
- 选择什么数据库?
- 为什么用MySQL8.0?
- 使用的索引数据结构?讲述一下选择该索引的原理和理由?
- 最左匹配原则的底层实现原理?
- 建立索引后整个数据库发生的过程?
- 覆盖索引?
- 数据库数据量大了怎么办?
- Redis底层原理了解哪些?说一说Strings这种基本类型的原理实现?其他相关底层?
- 用的Nginx还是tomcat? 说一下tomcat的底层原理实现? tomcat的架构设计?
- 你的项目接口性能测试做得怎么样?怎么做接口性能调优?
- 项目亮点?
- 协程了解嘛?协程的底层原理实现是什么样的?
- 归并排序的原理,复杂度讲一讲?其他非稳定排序不稳定的原理讲一讲?
- final关键字是什么?底层原理有了解吗?
- Hashmap讲一讲?
- String,StringBuilder,StringBuffer讲一讲?
- 思考题? 等边三角形的三个角上各有一只蚂蚁,他们三速度相同,他们三个不相撞的概率?
- 内存屏障是什么?
- TCP是怎么实现可靠性的?TCP拥塞控制的实现? TCP拆包过程?
- LRU是什么?怎么对LRU做优化?
- 现场算法:求两个数组的交集?
总结
- 这是一面,但是面试中对于源码的问题过多,自己对于很多知识的源码及原理了解过少,需要花时间再多加学习和巩固。