闪送JAVA校招一面 11.26
面试官非常友好!不会的会给予解答,没回答到点上的也会说出来这题应该怎么说,体验感很好!
忘了录音,下面是回忆:
项目是SpringCloud Alibaba的秒杀
项目:
你说你是高性能秒杀?
- 高性能具体体现在哪儿?
- 超卖问题怎么解决呢?就是你设置10个库存,怎么确定这十个库存?Redis原子操作,比如increment(),面试官方法是可以,但是公司里面好像都是把商品的sku(?)作为key,库存作为value。
- 如何解决Redis和数据库的一致性问题?Canal或者延时双删策略。Canal最好讲到读取binlog这一块,订阅,
- Spring、SpringMVC、SpringBoot、SpringCloud的区别
- SpringCloud常用有哪些组件?
- 如果A系统和B系统同时注册到Nacos,好像是有一个宕机了,还会继续调用吗?我说用CMDB插件,解决跨数据中心的问题,感觉不是,面试官说可以继续调用。
- 链表和数组的区别
- 链表能(还是需要)扩容吗?不能,回答错了
- 数组能扩容吗?能
- 数组如何扩容?不知道问的是HashMap扩容就没回答上来
- 线程池常用参数
- 说一下JVM原理?回答了内存区域
- 内存区域有哪些没有内存溢出?程序计数器?面试官反问了我确定吗?虚拟机栈(不能动态申请的时候)
- 常用的垃圾收集器有哪些?普通的+ZGC收集器
- 事务的隔离级别有哪些?
- 分别解决了什么?
- 可重复读能解决幻读吗?➕Next-key lock
- 索引有哪些类型?
- MySQL默认索引,为什么用B+树? 空间利用率+效率
- Redis常见的数据结构?
- Zset的底层数据结构用的什么?跳表和压缩列表。
- Redis分布式锁,在setnx之后,不设置过期时间会有问题吗?会的,任务结束需要释放锁