某小厂
总体上比较关注项目、集合和数据库相关的知识。
一面
自我介绍
说一个最熟悉的项目
说一下项目的重难点
为什么用TCC?(为什么不用Seata、2PC?)
Redisson原理、TCC原理
项目有没有用到sql优化,sql优化流程
mysql索引相关(B+树、聚簇索引、二级索引、怎么加索引)
sql题(A为主键,B,C为列)
select A,B(怎么建索引,需要回表吗)
select A,B,C where B=? (会不会走索引)
select A,B,C where B=? and C=? (怎么建索引)
select A,B,C where B=? and C!=? (会不会走索引)
HashMap(put原理、扩容机制)
HashMap线程安全吗?有什么线程安全的Map?(不安全,答了Hashtable、ConcurrentHashMap、synchronizedMap)
ConcurrentHashMap底层
继续问项目
反问
二面
自我介绍
介绍项目
代码中的实体类怎么定义的?实体类和数据库是怎么关联的?
代码结构怎么做的?层级结构是怎么样的?
实体类中po?vo?dto?分别是什么?区别?
用的数据库插件是什么?
实体和MyBatis之间是怎么映射的?
增删改查操作每一个操作都是一个Mapper吗?
程序怎么运行的?有用到docker容器吗?
IOC和AOP
怎么自定义注解?
不用锁怎么解决并发安全问题?
反问