🍓 Java
- Java动态代理
- Object类的equals和hashCode方法有什么用?
- Java数据类型和包装类型
- 深拷贝和浅拷贝有什么区别?
- Java字符串要注意哪些问题?
- 什么是泛型?有什么用?
- Java是值传递还是引用传递?
- 什么是反射机制?
- 什么是语法糖?
- Java集合详解
💾 MySQL
- MySQL锁
- MySQL索引
- MySQL事务
- MVCC笔记
- MySQL日志篇
- 如何排查MySQL索引失效的问题?
- 什么是聚簇索引和非聚簇索引?
- 什么是回表,怎么减少回表的次数?
- MySQL执行计划分析
- 如何进行SQL调优?
- 如何排查慢SQL问题?
- limit 1000000,0加载很慢如何优化?
- InnoDB和MyISAM有什么区别?
- MySQL中一条SQL的执行过程是怎样的?
☁ Redis
- 关于对缓存雪崩和缓存穿透的理解,以及如何避免?
- Redis集群
- Redis过期策略
- Redis内存淘汰策略
- 如何处理Redis的大key问题?
- Redis为什么这么快?
- 如何实现多级缓存?
- Redis的持久化机制是怎样的?
- Redis中的Zset是怎么实现的?
- 如何解决Redis的热点key问题?
- 如何提高缓存命中率?
- 为什么Redis集群的最大槽数是16384?
- 如何实现本地缓存?
- Redis除了做缓存,还能做什么?
- Redis有哪几种数据类型?分别有什么应用场景?
- Redis为什么单线程还这么快?为什么后面又引入多线程?
- Redis如何做性能优化?
- Redis有哪几种常用的缓存读写策略?
- Redis集群中什么是脑裂问题?如何解决的?
- 什么是Redis的数据分片?
- 为什么Lua脚本可以保证原子性?
💻 JVM
🎯 并发
- 高可用学习笔记(科普向)
- 🏆线程池学习笔记
- 如何限流?
- 如何设计分布式ID?
- 如何解决幂等性问题?
- 如何设计一个高并发系统?
- 🏆Redis和MySQL如何保证数据一致性?
- 什么是服务降级?
- 如何实现一个分布式锁?
- ThreadLocal是什么?实现原理呢?
- synchronized和ReentrantLock有什么区别?
- synchronized的锁升级过程是怎样的?
- synchronized的锁优化是怎样的?
- 线程池有哪几种?为什么不建议用Executors创建?
- 线程池的最佳实践
- 线程池工作原理
- 什么是线程死锁?如何避免?
- 什么是volatile?能保证原子性吗?
- 什么是AQS?
- 🏆图解AQS原理(ReentrantLock实现)
- 线程和进程有什么区别?
🎨 Kafka
- Kafka面试题
- Kafka如何解决消息积压问题?
- 什么是消息队列?
- 什么是Kafka的重平衡机制?
- Kafka的副本机制有什么用?
- Kafka如何避免重复消费?
- Kafka如何保证数据不丢失?
- Kafka如何保证顺序消费?
- Kafka中Partition和Consumer数量应该怎么分配?
- Kafka高水位是什么?
📝 Http
🔧 工具
📖 场景题
- 🏆如何设计一个秒杀系统?
- 如何用Redis实现延迟队列?
- 如何排查CPU飙升问题?
- 如何实现一个点赞功能?
- 如何实现一个扫码登录功能?
- 如何实现一个分数相同则按时间排序的排行榜?
- 如何防止库存超卖?
- 如何设计一个购物车功能?
- 如何提升接口的性能?
- 如何并发执行多个任务并等待执行结果?
- 如何保证高并发下的直播送礼能够快速完成?
- 线上MySQL如何给千万级大表加索引?
- 如何解决短信验证码接口被狂刷导致系统崩溃的问题?
- 🏆如何进行分库分表?会带来什么问题?
- 排行榜的最佳实践
- 如何设计一个短链系统?
- 如何设计一个动态Feed流系统?
- 如何设计一个站内消息系统?
🔋 代码优化
☕ Spring
- Spring如何解决循环依赖的问题?
- 介绍一下Spring的AOP
- Spring Bean的生命周期
- Spring事务
- Spring中Bean的作用域有哪些?
- 什么是SpringBoot的Starter?如何自定义一个Starter?