Java开发
一面(50min)
实习项目(深挖,会出些场景题):
项目中遇到的问题
redis的使用
数据去重方式
其他方案:MQ
如果我不用redis怎么提高数据库性能?
分表怎么分
扩容怎么处理,不影响之前的表的情况下呢
八股:
java集合
linkedlist和arraylist区别,那统计意义上的空间复杂度区别
hashmap在1.7到1.8的变化,红黑树和链表之间转换的条件
看过哪些源代码
hashmap数组长度2的次方的好处有哪些,那为什么减少碰撞
hash冲突解决方案
怎么中断一个线程
如果有个线程while true,我能在外面调用interrupted中断它吗
哪些阻塞可以被中断,所有的lock都可以中断吗
隔离级别有哪些
可重复读,mysql和其他数据库不同的地方:间隙锁
怎么解决可重复读的问题的
快照读是什么时候建立的,每次都有快照吗
数据库的范式
算法题:简单的二叉树层次遍历
反问
二面(45min)
自我介绍
实习介绍
Spring:
spring的框架的实现的过程
bean的创建过程,生命周期
怎么取扫描注释的呢:路径。那如果依赖外部的引用呢(不是同一个路径下的)怎么处理的,spring怎么实现的
其他Spring相关的学习有吗
SpringMVC的原理
Rest接口,参数顺序无所谓嘛,那它是怎么把请求转换到方法的参数去执行的。那这个注释底层怎么实现的呢
事务:
怎么管理的
事务传播怎么传播的
事务注解可以写在private上吗,为什么只能public的
事务怎么实现的,本质上是管理哪个对象:connection。那这个数据库连接对象是放在哪里的
spring管理的时候,报异常怎么办。这个过程spring底层怎么实现的
场景题:项目里提供了很多接口,我想去知道每个接口耗的时间,并记录数据库里。实现的方案和过程讲一下:AOP,日志
我想日志行为不影响业务,但是数据库插入失败怎么办?
那并发高,怎么优化场景?
线程池的阻塞队列和非阻塞队列,你用什么队列?会有哪些不安全情况
八股:
线程安全和不安全,为什么会不一致
讲下i++不安全问题,i是放在哪里的
我有一个cpu一个核的,多线程有用
sql语句,知道rank函数吗,和order by区别
学生选课表,统计每个学生选了几门课,having和where区别
innodb主键索引
b+数的高度怎么确定,为什么大概3层,几个分叉(分叉数量怎么决定的)
插入的时候树会重构吗
组合索引怎么在B+存的,为什么会限制最左匹配?搜索的过程?父节点和子节点之间的所谓之间的大小,怎么判断的?
个人情况:比赛、毕设
反问