1、自我介绍
2、说一个比较熟悉的项目,在项目中做的比较好的有哪些方面?
3、线程池在项目中是做什么的?在线程池中多个线程的结果是如何去合并的,说出两种解决方式
答:invokeAll()获取所有线程结果和CountDownLatch计数器
4、线程池是怎么实现线程的保活和停止管理的?
答:不是很理解面试官的意思,沉默了几分钟说了一下shutdown()、shutdownNow()以及awaitTermination()三种方法的使用,面试官没有反驳,点了点头,估计瞎猫碰上死耗子了
5、数据一致性是怎么做的?
6、场景题:如果Redis集群达到性能瓶颈了,但是有很多请求过来时你怎么解决?
答:说了用消息队列或者增加服务器的个数,但面试官都不太满意,让我想想还有哪些方式可以作缓存,没想到
7、场景题:如果让你实现一个系统,此时有大量的请求流量过来,你会考虑哪些方面的问题?
答:数据库的压力以及使用缓存、限流、同步机制保证数据的正确性
8、HTTPS的加密方式?使用对称加密和非对称加密的好处是什么?
9、volatile的实现原理?为什么能保证变量的可见性?使用场景有哪些?
10、Spring中IOC和AOP分别是基于什么实现的?动态代理有哪些?有什么区别?
11、Spring是如何实现事务管理的?事务失效的场景?为什么作用在非public方法上会使事务失效?
12、如何预防死锁的发生?
13、基本类型和引用类型的区别?拆箱和装箱的对象分别是放在哪里的?
答:一时间没明白第二小问的意思,想了想说放在元空间和堆的,估计也蒙对了
14、MySQL的事务隔离级别?读提交和可重复读的区别?ReadView的实现原理?
15、MySQL的索引数据结构?为什么要用B+树?
求个二面