一面(被怼晕):
1、谈谈项目
2、将你项目中的数据库设计写出来(表结构),设计思路
3、手写规定场景下的sql查询(包括联合查询,count,groupby等语句)
4、谈谈acid
5、规定场景下,不同的隔离级别对读数据的影响
6、redis的如何实现分布式锁,用setnx、getset和一个过期时间(本来会的,让问的懵了)
7、谈谈多线程,hashmap原理,为什么不安全
8、concurrenthashmap为什么安全,加锁在什么位置,读数据用加锁么?
9、CAS了解么,怎么防止ABA?
10、tcp四次挥手和三次握手的区别,双方之间的状态是什么样的
11、手写代码链表反转,写了个递归的,又让写成非递归的(是因为写的太快了么。。。)
12、谈谈ioc,aop的实现原理(很可惜这个没有回答上,早就说要看spring的源码,一直都没看,不然很加分的。。。)
二面:
1、谈谈项目
2、tcp和udp的区别
3、谈谈微服务
4、写一个排序算法
5、jvm加载类的过程
总结:一面全程处于懵逼状态,大脑短路,问题回答的都不太好,二面还算比较冷静。面试一定要保持冷静啊!!!!