快手最复杂的一次java面试,不过面试官很和蔼

200 阅读1分钟

一面(不全,大概)

自我介绍,介绍了做过的项目,然后面试官说直接问基础吧…… 集合全套,说一下。 线程池说一下,(太罗嗦了)直接叫停,说一下任务来了的执行过程 设计模式,手写一下观察者模式 Spring的好处。 AOP原理。 传播行为有哪几种。 MySQL索引、聚集索引是什么、联合索引怎么存储的 TCP三次握手 手写一个阻塞队列(小BUG的地方很耐心的指导了一下) 二面(不全,大概)

自我介绍,介绍新项目,谈了微服务架构的分布式锁自己根据压测结果来优化过程 乐观锁悲观锁 同步怎么实现的(synchronized和Lock,底层原理说了一遍) HashMap尽量说,ConcurrentHashMap也说一下 Mysql事务隔离,产生的问题说一下(说的过程还提下了锁跟MVCC,但是没有问我) Mysql索引说一些(说了四个索引类型,B+树的结构及优点),又问聚集索引 手写一个堆排序 项目有用过多线程吗?那分布式锁除了Redis还有什么方式实现 链表找环(快慢指针),又问,那怎么找入口呢(我说从头节点再出发一个指针去找,但是没说出来具体,面试官提醒说,思路是对的,用慢指针跟头节点一起走,他们相遇的地方就是入口(数学证明)) HR面 12分钟 10.24