- 面试时长:50分钟
开始
- 无自我介绍,直接开始
- 项目讲一下 (讲了下流程和设计数据库流程)
- 是否使用使用索引,讲一下(扩展出B+树,B-树,哈希索引)
- 是否做过数据库拆分(做过逻辑拆分)
- redis讲一下(讲自己的使用)
- 网络原理方面(做过NIO聊天室,扩展出select,poll,epoll函数(问到epoll实战优化没去了解过了))
- 数据结构方面讲一下 (哈希表(扩展出hashmap的底层),数组,链表比较)
- 排序:堆排序和快排比较(扩展出归并和其他排序,牵扯到Java sort源码)
- 口述算法:一个数组里面有一半及以上数是相同的,怎么找?
- 多线程并发方面 (讲了synchronized和Reentranlock实现和区别)
- 设计模式方面,工厂方法模式? (列出抽象工厂方法模式思想,模板方法模式思想以及相关设计原则)观察者模式?(细节记不住了。。。)
- UML是否用过
- 对转语言有想法吗?(我说GoLang,C++都可以)
- 结束,问面试官问题
总结
- 本次面试官问问题的方式很开放式,可以自己引导方向并发挥,自我感觉比较好,但是自己在设计模式方面偏实战了解不够深入,还需多加学习!