菜鸟集团Java开发-深圳,一面(社招)
0.面试形式
在官网投递了简历,投了三个岗位,接到其中一个岗位的面试通知,钉钉在线面试。
1. 面试题
总耗时60分钟,题目如下:
(0)自我介绍。
(1)介绍一下Spring开发项目中Bean的生命周期
(2)介绍一下动态代理,JDK动态代理和CGLib代理有什么区别?后者在哪些场景下不可用?
(3)对集合(Map、Queue、Set、List)的理解?HashMap每次扩容时为什么默认扩容一倍?知道PriorityQueue的实现原理吗?知道ConcurrentHashmap和Hashtable的底层原理和结构吗?它们分别是怎么实现线程安全的?
(4)对多线程编程的理解:可重入锁是如何实现可重入的?如果让你设计一个synchronized关键字实现同步锁,你会怎么设计?可线程池构造函数七个参数含义,你项目中队列参数设置的是哪个队列?知道哪些拒绝策略?
(5)如果让你设计一个秒杀活动,你会考虑哪些技术难点?使用哪些技术栈?你设计的方案有些“不公平”,大部分买家等待时间过长,如何使得所有买家能更快地完成结算(缓存预热、Redis)?
(6)如何保证MySQL数据库和Redis缓存的数据是一致的?项目中使用Canal,是同步了全部的数据库数据吗?
(7)项目中有哪些技术确保了项目的高可用性、可靠性?
(7)项目中有没有遇到过什么技术难点?
(8)介绍一下Seata的几种模式及其应用场景,如果能说明一下原理的话介绍一下原理。
(9)反问环节。
每个问题,面试官都尽可能深挖,看看自己了解有多深,每个问题耗时都不短,答的并不好,估计没通过。
#菜鸟##Java##Java面试##社招##阿里巴巴#记录本人的社招经历。