商汤一面 Java后端
刚结束,首先说下时常:90分钟,很累,嘴很干。
上来先自我介绍(985前10本科+美硕)
然后聊项目,我的项目比较简单,主要和数据库打交道,但说的也比较详细吧。
技术问题:
1.外键(问了个很奇怪的问题,有join语句为啥还要用外键)数据库的索引,什么时候不用索引,问到了最左匹配原则,不会。
2. 数据库检索优化 我讲了explain,然后问了type的连接类型
3.Springboot和spring;
- 为什么要用springboot;
- 优点&特点;我说了bootstrap和application,然后问了加载过程;
- 可能是我第一个问题答的比较细,所以也没多问
4.问我还擅长什么,我说了collection接口的几个结构,thread线程,锁什么的,于是就开始问了这边的问题
- ArrayList和LinkedList
- HashMap(底层,put,resize(),加载因子,为什么转红黑树)
- 进程和线程的区别,并发和并行,thread的状态(blocked和waiting的区别)
- 线程转换的消耗,我自己带了点线程池的思想不知道答的对不对
5.tcp三次握手
6.设计模式(重点说了生产者和消费者模式)
7.算法题(无序数组最大的第K个数,先说了priorityqueue时间复杂度O(NlogK),解释了蛮久,估计之前没接触过这个写法,然后问我更好的,幸好之前做过,QuickSelect,O(N)的解法)
leetcode215 medium
8. 做项目中遇到了什么问题,团队开发的问题,怎么解决的。
9. 学了哪些课,学的好的课,想做工程还是算法。
10. 等通知。(没反问)
#Java面试##面经##校招##商汤科技##Java工程师#