喜马拉雅面经

本文分享了作者在喜马拉雅的面试经历,详细记录了一面和二面的面试问题,涉及项目介绍、限流策略、数据库锁、SQL优化、全文检索、并发原理、数据结构与算法、设计模式、Spring框架、HTTP与TCP协议、系统设计以及缓存等技术知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

2019年3月14号周四中午大概12点我正在吃中饭,收到喜马拉雅HR电话,通知问我有没有兴趣面试他们的Java开发工程师。(ps:我没主动投过,我也不知道他们哪里弄来的我的简历)

废话不多说,当然愿意面试,HR说后续安排电话面试

一面

电话面试,第二天3月15号上午

简单介绍一下你最近做的项目?

我扯了一大堆,我扯到了限流

说一下你项目中限流是如何做的?

我答用令牌,获取令牌的方式实现限流

说一下令牌桶算法比普通counter计数器实现的限流优势在哪?或者说传统的counter计数器实现缺点在哪?

没答上来

说一下悲观锁和乐观锁

简答介绍悲观锁和乐观锁的含义,有对具体锁的实现举了例子,比如乐观锁CAS实现,悲观锁synchronized

又引入了乐观锁CAS的ABA问题

MySQL的间隙锁

我直接把临建锁、间隙锁、记录锁原理整了一遍,以及锁如何退化的。

SQL中的join使用的注意事项,或者join的优化点在哪?

我只提到了索引,其他没想到,答的不好。

全文检索es有没有了解过,倒排索引原理知道吗?

我说了解ELK这一套开源的日志全文检索架构。

倒排索引原理没说上来,这里准备不充分。

二面

现场面试,3月20号周三,下班之后6点多到的喜马拉雅

锁有哪些?各种实现原理以及具体实现各举个例子

悲观锁和乐观锁、可重入锁和不可冲入锁、排他

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值