2021高级JAVA开发面试题精选

如果你是面试官,可以将此文涉及的面试点纳入自己的面试题库,借此考察求职者的技术深度;

如果你是求职者,可以通过此文的面试点准备面试,按我个人的经验来说,虽不说100%通过,如果都能答好的话通过概率起码85%以上。

如果你不是面试官,也不是求职者,也可以通过此文的面试点夯实技术水平,以文促学,带着问题学技术会让你事半功倍。

数据库篇

MySQL数据库相关

  • MySQL有哪些常见的存储引擎?

  • 索引的原理是什么?

  • MySQL三种日志分别起到什么作用?(redoLog,undoLog,binLog)

  • 为什么选择B+树索引?

  • 什么情况下会出现索引失效?

  • 如何查看执行计划?

  • 如何优化SQL查询?

  • MySQL主从复制原理?

  • 数据库死锁的原因?如何快速定位并解决?

事务隔离级别

  • 事务有哪些隔离级别?

  • 每种隔离级别会导致什么问题?

  • mysql 和 oracle默认情况下分别采用哪种隔离级别?

  • mysql如何解决幻读的?

中间件篇

MQ的相关问题

  • 你用过消息队列吗?用了哪个消息队列?

  • 在使用MQ的时候怎么确保消息 100% 不丢失?

  • 怎么解决消息的重复消费问题?

  • 如何实现顺序消息?

  • 如何解决引入消息后的事务问题?

分库分表相关问题

  • 你用过分库分表吗?

  • 如何实现单个维度的非sharding-key 的查询问题?比如通过userID 作为 sharding-key,那么如何实现基于userName进行查询?(映射法、基因法)

  • 如何实现多个维度的多个字段非 sharding-key 如何查询?时间、用户名、类别等…

  • 多维度查询需要配合其他查询引擎,那么如何实现数据同步?如何保证双写的一致性?

  • 很多情况下并不是一开始就实现分库分表,等我们需要分库分表的时候如何进行数据迁移?

Redis

  • 用过Redis吗?Redis支持哪些常见的数据结构?

  • Redis的线程模型

  • Redis如何保证数据不丢失的(如何实现持久化)?

  • AOF 和 RDB的实现原理?

  • Redis如何实现高可用?

  • 什么是缓存穿透,缓存击穿,缓存雪崩?分别如何预防解决?

分布式锁相关问题

  • 用过分布式锁吗?用什么实现的分布式锁?

  • 有没有用过基于redis分布式锁?有没有用过基于Zookeeper的分布式锁?

  • 如何给锁设置合理的加锁时间?锁超时了怎么办?Redisson看门狗的原理?

  • Redis如何解决集群情况下分布式锁的可靠性?

  • RedLock算法的原理?

并发编程篇

锁相关

  • 说一下synchronized 底层实现原理?

  • 说一下synchronized、volatile、CAS 的区别?

  • synchronized 和 Lock 有什么区别?

  • 什么是CAS,CAS的原理?

  • CAS有什么缺点?如何解决CAS中常见的ABA问题?

  • AQS的原理,AQS的实现过程是什么?

  • 有没有用过读写锁ReentrantReadWriteLock,说一下ReentrantReadWriteLock的原理?

线程池相关

  • 有哪几类线程池?如何创建线程池?

  • 解释一下线程池的核心参数,线程池的执行过程?

  • 如果提交任务时,线程池队列已满,这时候会发生什么?

  • 线程池线上参数如何优化?

分布式篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值