最新蚂蚁花呗面试题:线程池与锁+数据主从同步+MQ实现+秒杀超卖
一面:主要问的基础知识 java线程同步都有哪几种方式,Synchronized和ReentrantLock的区别 ReentrantLock底层是怎么实现的,怎么实现的超时获取锁。 cas的原理,变量要用哪个关键字修饰,volatile实现的原理,进而引申到了java虚拟机的内存模型。 介绍一下java虚拟机内存模型,然后继续讨论volatile。 线程池种类,哪四种 workqueue分别是什么 什么时候触发minor GC 什么时候触发full GC 聊点数据库,一般选什么样的字段做主键,有什么选取原则吗,用种子自增来做主键,为什么每次种子要加1,加2加3可以吗。 sql优化有哪些思路 索引使用注意事项 InnoDB数据模型,B+树具体说说都保存了什么,叶子节点保存了什么 你有什么想问我的。 二面:主要是围绕项目 1、介绍一下你的项目(主要是技术难点),请画出项目架构设计图和部署图? 2、dubbo负载均衡算法有哪些,如果让你实现一致性hash的dubbo负载均衡算法,你会怎么实现? 3、zookeeper实现的分布式锁的原理,以及redis具体怎么实现分布式锁? 4、限流是怎么实现的,hystrix介绍一下。 5、dubbo有哪些模块,底层通信的原理。 6、spring的ioc,aop是怎么实现的。 7、线上问题的解决思路,程序运行一段时间,突然内存溢出,重启后