一面在这里
二面的问题主要问的项目,很深入很细节,虽然项目就是一个简单的前后端的系统,但是问了很多优化的思路。这些都可以提前总结总结。
- 介绍项目的架构(也就是分为几个模块)
- 用的mysql的搜索引擎是什么(innodb),它有什么特点
- 项目中的每个技术点都问了怎么实现了的。
- 问到多表查询的时候,如何提高效率(能想到的就是规划好字段的顺序,让经常查询的字段作为联合索引,或者使用多线程并发的去做最后再将结果归并,或者直接用redis做缓冲存所有的数据,在使用这种功能的时候直接用缓存查。最后面试官提醒可以考虑不同的功能用不同的存储引擎。)
- 项目是一个单服务器单库,如何在多个服务器上实现高可用。(使用redis加缓存,主从备份,负载均衡(nginx和kafka这两个还需要再了解下合不合适),用消息队列)
- 主要的表结构,主键都是什么
- mysql的主从复制的过程,主从复制的时延性如何解决。(多线程,加缓存)
- 讲一下行锁,B+树,红黑树
- 有一个数字的集合,确定某个数字是否存在(hashmap,前缀树,bloomfilter)
- LinkedList和Array的差别,LinkedList的性能问题。
- 如何用数组实现一个链表
- 接口和抽象类的比较
- 说说排序算法,问快排的时间复杂度和空间复杂度。
- 数据库中多线程的读写问题(记得提一下MVCC)
- 线程进程的区别
- Spring bean的生命周期
- 事务ACID
- 影响深刻的克服困难的事。
问了基础很简单,我觉得最好不要背面经,说自己的理解,最好能深入的说下,即使相比于面经不全,也比直接比划面经给人的感觉要好,个人理解。
面试官加了微信了,说有后续的面试就微信联系,不知道会不会给三面,保佑!
全部评论
(4) 回帖