AQS 的底层原理
介绍下悲观锁和乐观锁
使用过哪些锁
synchronized 和 Lock 的区别、使用场景
synchronized 原理
synchronized 作用于静态方法、普通方法、this、Lock.class 的区别
为什么引入偏向锁、轻量级锁,介绍下升级流程
死锁的必要条件,如何预防死锁
介绍下 CountDownLatch 和 CyclicBarrier
介绍下 CAS,存在什么问题
介绍下 ThreadLocal,存在什么问题
=====================================================================
HTTPS 是怎么加密的
普通 Hash 和一致性 Hash 原理
一致性 Hash 的缺点
TCP 三次握手过程,为什么需要三次握手
为什么 TIME_WAIT 状态需要经过 2MSL 才能返回到 CLOSE 状态
TCP 的拥塞控制
TCP 如何解决流控、乱序、丢包问题
为什么会出现粘包和拆包,如何解决
=================================================================================
Mybatis 中 # 和 $ 的区别
怎么防止 SQL 注入
使用 Mybatis 时,调用 DAO(Mapper)接口时是怎么调用到 SQL 的
介绍下 Spring IoC 的流程
BeanFactory 和 FactoryBean 的区别
Spring 的 AOP 是怎么实现的
Spring 的事务传播行为有哪些,讲下嵌套事务
什么情况下对象不能被代理
Spring 怎么解决循环依赖的问题
要在 Spring IoC 容器构建完毕之后执行一些逻辑,怎么实现
@Resource 和 @Autowire 的区别
@Autowire 怎么使用名称来注入
bean 的 init-method 属性指定的方法里用到了其他 bean 实例,会有问题吗
@PostConstruct 修饰的方法里用到了其他 bean 实例,会有问题吗
Spring 中,有两个 id 相同的 bean,会报错吗,如果会报错,在哪个阶段报错
Spring 中,bean 的 class 属性指定了一个不存在的 class,会报错吗,如果会报错,在哪个阶段
Spring 中的常见扩展点有哪些
========================================================================
MySQL 索引的数据结构
为什么使用 B+ 树,与其他索引相比有什么优点
各种索引之间的区别
B+ 树在进行范围查找时怎么处理
MySQL 索引叶子节点存放的是什么
联合索引(复合索引)的底层实现
MySQL 如何锁住一行数据
SELECT 语句能加互斥锁吗
多个事务同时对一行数据进行 SELECT FOR UPDATE 会阻塞还是异常
MySQL 使用的版本和执行引擎
MySQL 不同执行引擎的区别
MySQL 的事务隔离级别
MySQL 的可重复读是怎么实现的
MySQL 是否会出现幻读
MySQL 的 gap 锁
MySQL 的主从同步原理
分库分表的实现方案
分布式唯一 ID 方案
如何优化慢查询
explain 中每个字段的意思
explain 中的 type 字段有哪些常见的值
explain 中你通常关注哪些字段,为什么
======================================================================
运行时数据区
服务器使用的什么垃圾收集器
CMS 垃圾收集的原理
G1 垃圾收集的特点,为什么低延迟
有哪些垃圾回收算法,优缺点
哪些对象可以作为 GC Roots
有哪些类加载器
双亲委派模式,哪些场景是打破双亲委派模式
线上服务器出现频繁 Full GC,怎么排查
定位问题常用哪些命令
介绍下 JVM 调优的过程
========================================================================
为什么使用 Kafka
介绍下 Kafka 的各个组件
如何保证写入 Kafka 的数据不丢失
如何保证从 Kafka 消费的数据不丢失
Kafka 为什么性能这么高
零拷贝技术使用哪个方法实现
Java 中也有类似的零拷贝技术,是哪个方法
Kafka 怎么保证消息的顺序消费
Kafka 怎么避免重复消费
什么是 HighWatermark 和 LEO
什么是 ISR,为什么需要引入 ISR
========================================================================
项目中使用的 Redis 版本
Redis 在项目中的使用场景
Redis 怎么保证高可用
Redis 的选举流程
Redis 和 Memcache 的区别
Redis 的集群模式
Redis 集群要增加分片,槽的迁移怎么保证无损
Redis 分布式锁的实现
Redis 删除过期键的策略
Redis 的内存淘汰策略
Redis 的 Hash 对象底层结构
Redis 中 Hash 对象的扩容流程
Redis 的 Hash 对象的扩容流程在数据量大的时候会有什么问题吗
Redis 的持久化机制有哪几种
RDB 和 AOF 的实现原理、优缺点
AOF 重写的过程
哨兵模式的原理
使用缓存时,先操作数据库还是先操作缓存
为什么是让缓存失效,而不是更新缓存
缓存穿透、缓存击穿、缓存雪崩
更新缓存的几种设计模式
============================================================================
Zookeeper 的使用场景
Zookeeper 怎么实现分布式锁
Zookeeper 怎么保证数据的一致性
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
总结:绘上一张Kakfa架构思维大纲脑图(xmind)
其实关于Kafka,能问的问题实在是太多了,扒了几天,最终筛选出44问:基础篇17问、进阶篇15问、高级篇12问,个个直戳痛点,不知道如果你不着急看答案,又能答出几个呢?
若是对Kafka的知识还回忆不起来,不妨先看我手绘的知识总结脑图(xmind不能上传,文章里用的是图片版)进行整体架构的梳理
梳理了知识,刷完了面试,如若你还想进一步的深入学习解读kafka以及源码,那么接下来的这份《手写“kafka”》将会是个不错的选择。
-
Kafka入门
-
为什么选择Kafka
-
Kafka的安装、管理和配置
-
Kafka的集群
-
第一个Kafka程序
-
Kafka的生产者
-
Kafka的消费者
-
深入理解Kafka
-
可靠的数据传递
-
Spring和Kafka的整合
-
SpringBoot和Kafka的整合
-
Kafka实战之削峰填谷
-
数据管道和流式处理(了解即可)
5问、高级篇12问,个个直戳痛点,不知道如果你不着急看答案,又能答出几个呢?
若是对Kafka的知识还回忆不起来,不妨先看我手绘的知识总结脑图(xmind不能上传,文章里用的是图片版)进行整体架构的梳理
梳理了知识,刷完了面试,如若你还想进一步的深入学习解读kafka以及源码,那么接下来的这份《手写“kafka”》将会是个不错的选择。
-
Kafka入门
-
为什么选择Kafka
-
Kafka的安装、管理和配置
-
Kafka的集群
-
第一个Kafka程序
-
Kafka的生产者
-
Kafka的消费者
-
深入理解Kafka
-
可靠的数据传递
-
Spring和Kafka的整合
-
SpringBoot和Kafka的整合
-
Kafka实战之削峰填谷
-
数据管道和流式处理(了解即可)
[外链图片转存中…(img-1bbAEjoZ-1711465681126)]
[外链图片转存中…(img-C2pvUoF9-1711465681126)]