最近有位读者去面试了oppo,给大家整理了面试真题的答案。希望对大家有帮助哈,一起学习,一起进步。
1.聊聊你印象最深刻的项目,或者做了什么优化。
2.你项目提到分布式锁,你们是怎么使用分布式锁的?
.常见分布式事务解决方案
4.你们的接口幂等是如何保证的?
5.你们的MySQL架构是怎样的?
6.常见的索引结构有?哈希表结构属于哪种场景?
7.给你ab,ac,abc字段,你是如何加索引的?
8.数据库隔离级别是否了解?你们的数据库默认隔离级别是?为什么选它?
9.RR隔离级别实现原理,它是如何解决不可重复读的?
10.你们项目使用了RocktMQ对吧?那你知道如何保证消息不丢失吗?
11.事务消息是否了解?场景题:比如下单清空购物车,你是如何设计的?
12.如何快速判断一个数是奇数还是偶数,除开对2取余呢。
1.Spring声明式事务原理?哪些场景事务会失效?
14.你们是微服务架构嘛?如果你来设计一个类似淘宝的系统,你怎么划分微服务?
15.你们是怎么分库分表的?分布式ID如何生成?
16.所有异常的共同祖先是?运行时异常有哪几个?
1.聊聊你印象最深刻的项目,或者做了什么优化。大家平时做的项目,如果很多知识点跟面试八股文相关的话,就可以相对条理清晰地写到简历去。
比如缓存数据库相关的,查询为空,你设置了一个-1到缓存,代表数据库没记录。下次判断-1,就不查库了,以解决缓存穿透问题。又比如你设置缓存过期时间比较分散,解决缓存击穿问题,都可以条理清晰写到简历去,这样面试官很可能会问你相关的问题,这时候就对答如流啦。
还有平时你做的项目,有一些比较好的设计,都可以说一下哈,比如你是如何保证数据一致性的,怎么优化接口性能的。如果是讲优化接口这一块的话,你可以看下我这篇文章哈,结合来一起讲。其实就是缓存、分批、并发调用、异步等那几个关键知识点。
记一次接口性能优化实践总结:优化接口性能的八个建议。
如果是代码优化细节,你可以挑个简单的来讲,比如复杂的if逻辑条件,可以调整顺序,让程序更高效,这样会让面试官眼前一亮哦。
如果是慢SQL优化这一块,可以看下我之前MySQL专栏系列文章,理解透之后,还是挺稳的:
看一遍就理解:ordrby详解看一遍就理解:groupby详解实战!聊聊如何解决MySQL深分页问题后端程序员必备:书写高质量SQL的0条建议阿里一面,给了几条SQL,问需要执行几次树搜索操作?生产问题分析!dltin子查询不走索引?!面试官问如何优化慢SQL?2.你项目提到分布式锁,你们是怎么使用分布式锁的?一般你讲述你做的项目时,面试官会根据你项目涉及的一些面试点,然后抽他感兴趣的一两个来问。所以大家对哪些知识点熟悉,讲述项目时,就说你用该知识点,解决了什么问题。
.常见分布式事务解决方案分布式事务:就是指事务的参与者、支持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上。简单来说,分布式事务指的就是分布式系统中的事务,它的存在就是为了保证不同数据库节点的数据一致性。
聊到分布式事务,大家记得这两个理论哈:CAP理论和BASE理论
分布式事务的几种解决方案:
2PC(二阶段提交)方案、PCTCC(Try、Confirm、Cancl)本地消息表最大努力通知sata2PC(二阶段提交)方案
2PC,即两阶段提交,它将分布式事务的提交拆分为2个阶段:prpar和