这篇不错的合集:Spring常见面试题总结
1、MySQL索引面试(索引类型&&)
2、事务面试
简单总结如下:
脏读:A事物读取到B事物未提交前数据(若B回滚,A读取的数据就有问题);
不可重复读:同一A事物多次读取的不一致(B事物在A事物中间修改并提交过数据);
幻读:同一A事物多次读取不一致,导致后续业务异常(B事物在A事物中间,delete或insert过数据)
【不可重复读侧重表达:读-读,幻读则是说:读-写,用写来证实读的是幻觉】
MySQL 标准中的四种隔离级别
隔离级别 | 隔离级别(中文) | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|---|
READ UNCOMMITTED | 读未提交 | √ | √ | √ |
READ COMMITTED | 读已提交 | × | √ | √ |
REPEATABLE READ | 可重复读 | × | × | x |
SERIALIZABLE | 串行化 | × | × | × |
说明:
1、sqlSessionFactory通过mapperLocations自动扫描mapping.xml文件;
2、mapperScannerConfigurer扫描mapper的Dao 接口位置
3、当调用接口方法时,接口全限名namespace+方法名拼接字符串作为key值,可唯一定位一个MappedStatement
(mybatis首先会解析sql动态标签为对应数据库sql语句的形式,并将其封装进MapperStatement对象)
MyBatis常见面试题(比较全面完善)
Mybatis常见面试题总结
引申延展:mybatis一级缓存二级缓存
6、JVM
jvm原理
GC之引用计数和可达性(强烈推荐第二个Gityuan的回答)
7、多线程面试
Java并发编程:volatile关键字解析(强烈推荐)
深入理解Java并发之synchronized实现原理(Synchronized文章2)
9、kafka面试
10、nginx面试