- 1
维度建模常见反模式:大宽表滥用、层级穿透与其他坑
维度建模的典型反模式:大宽表滥用、维度层级穿透、混合粒度、多值维度硬塞、SCD 处理缺失。识别信号加对应解法,用桥接表和一致性维度纠偏。
- 2
数仓成本治理与表生命周期:钱花在哪儿、怎么省下来
数仓成本分存储和计算两块。存储侧靠生命周期 TTL、冷表下线、压缩和小文件合并;计算侧治全量扫描和资源浪费;成本要分摊到团队才有治理动力。
- 3
数据回刷与补数策略:什么时候刷、怎么刷才不出事故
回刷分口径变更、故障修复、脏数据修复、历史初始化四类场景。核心是幂等重跑、血缘联动下游、影子表双跑切换,以及与正常调度的资源隔离。
- 4
实时数仓怎么分层?技术选型怎么定
实时数仓沿用 ODS-DWD-DWS-ADS 思路但层数要压浅,Kafka 存原始与明细,Flink 做清洗和汇总,CK/Doris 承接查询,点查走 Redis/HBase。
- 5
Lambda 和 Kappa 架构对比:两套链路的痛与流批一体的解
Lambda 用批层保准确、速度层保时效,代价是双链路口径和运维成本;Kappa 全流简化架构,但重算和大状态是硬伤。选型看实时占比和重算需求。
- 6
数据血缘与影响分析:怎么建、怎么用
血缘靠 SQL 解析拿表级和字段级依赖,调度依赖做兜底。核心用途是影响分析、口径溯源、问题定位和下线评估,准确率要靠多来源互补。
- 7
数据质量监控(DQC)怎么落地:规则、卡点和熔断
DQC 落地的三要素:规则体系覆盖完整性/及时性/准确性/一致性,卡点挂在任务产出后下游启动前,强规则熔断阻断调度、弱规则告警通知。
- 8
宽表设计的收益与代价:什么时候该建,什么时候是灾难
宽表用冗余存储换查询性能和使用门槛,收益是免 join、口径统一;代价是回刷贵、变更僵、字段膨胀。适合放 DWS/ADS 服务固定场景,不适合放明细层。
- 9
数仓模型怎么优化?复用度和穿透率怎么度量
数仓优化的抓手是公共层沉淀和指标口径统一。复用度看 DWS 表被多少下游消费,穿透率看下游绕过公共层直查明细的比例,用血缘数据就能算。
- 10
怎么评价一个数仓建得好不好?从五个维度看
评价数仓看五点:数据质量(完整准确一致及时)、模型复用度、稳定性与 SLA、资源成本、规范性。可量化为 DQC 通过率、任务破线率、重复表比例等指标。
- 11
指标体系怎么设计?指标字典到底解决什么问题
指标体系自上而下拆解:北极星指标按 OSM/UJM 拆到过程指标;落地靠「原子指标+修饰词+时间周期」定义派生指标。指标字典解决同名不同义、同义不同名的口径混乱。
- 12
一致性维度和一致性事实:数仓能跨主题对数的前提
一致性维度是各事实表共享、含义和取值统一的维度,一致性事实是口径统一的度量。两者是总线架构的总线标准,保证跨业务过程能联合分析、同指标各报表一致。
- 13
总线矩阵是什么?数据域怎么划分
总线矩阵是「业务过程 × 公共维度」的二维表,是数仓建设的总设计图;数据域按业务过程聚类划分(交易、流量、用户等),矩阵先于建模,指导优先级和维度共享。
- 14
星型模型和雪花模型怎么选?大数据场景为什么是星型
星型是事实表直连扁平维表,雪花把维表再规范化拆成多级。星型 join 少、查询快、口径直观;雪花省存储但 join 链路长。大数据场景一律选星型。
- 15
维度表设计与缓慢变化维:拉链表到底是怎么实现的
维度表设计涵盖代理键、维度退化、一致性维度;缓慢变化维有 SCD0/1/2/3 四种处理,拉链表是 SCD2 在 Hive 上的经典实现,用起止日期保存历史。
- 16
三种事实表:事务事实表、周期快照、累积快照怎么选
事务事实表记录原子事件,周期快照定期度量状态,累积快照跟踪流程多里程碑。选型看业务过程是瞬间事件、状态量还是长周期流程。
- 17
维度建模四步法:从业务过程到事实表的标准动作
Kimball 四步法:选业务过程、声明粒度、确定维度、确定事实。粒度声明是整张表的契约,先定粒度再谈维度和事实,顺序不能乱。
- 18
数仓为什么要分层?ODS/DWD/DWS/ADS 每层到底干什么
分层是为了解耦、复用和可追溯。ODS 贴源保留现场,DWD 清洗明细并统一口径,DWS 轻度汇总沉淀公共逻辑,ADS 面向应用出指标。
- 19
Flink 任务调优手段:并行度、内存、Checkpoint 与反压治理
系统梳理 Flink 作业调优的入口与顺序:并行度与资源评估、内存模型关键参数、Checkpoint 与状态优化、反压定位后的对症手段。
- 20
Flink 数据倾斜的表现与处理方案
讲清数据倾斜在 keyBy/窗口聚合/Join 场景的表现,以及加盐打散、两阶段聚合、热点 key 单独处理等实战方案的选择逻辑。
- 21
Flink 双流 Join 怎么实现,状态 TTL 怎么定
讲清双流 Join 的双侧状态缓存与互相探测机制、interval join 与窗口 join 的区别,以及状态 TTL 的设定依据与防膨胀手段。
- 22
Flink CDC 的原理与典型用法
讲清 Flink CDC 基于 binlog 增量捕获 + 快照读的原理、无锁快照与断点续传的实现,以及整库同步、实时数仓 ODS 层等典型落地方式。
- 23
Flink 的反压机制与排查方法
讲清 Flink 基于信用额度(credit-based)的反压传导原理,以及用 Web UI 指标、线程栈、Metrics 定位反压根因的完整排查套路。
- 24
Flink 的 Exactly-Once 语义与两阶段提交
区分内部状态一致性与端到端 Exactly-Once,讲清两阶段提交 sink 的预提交/提交/中止流程,以及 Kafka、MySQL 等常见 sink 的一致性实现方式。
- 25
Savepoint 和 Checkpoint 的区别
从触发方、生命周期、文件格式、用途四个维度对比 Savepoint 与 Checkpoint,说明升级、扩容、A/B 测试等运维场景为什么必须用 Savepoint。
- 26
Flink 的状态与状态后端:Heap 还是 RocksDB,增量快照怎么回事
讲清 keyed state 与 operator state 的区别、三种状态后端的取舍,以及 RocksDB 增量快照的原理和大状态作业的工程配置。
- 27
非对齐 Checkpoint:什么场景用,代价是什么
讲清非对齐 Checkpoint 的原理(跳过对齐、连缓冲数据一起快照)、适用场景(严重反压下救活 Checkpoint)与使用前提和限制。
- 28
Flink Checkpoint 原理:barrier 对齐到底在干什么
从 Chandy-Lamport 算法讲起,讲清 barrier 注入、对齐、快照写入、确认回报的完整流程,以及对齐的代价与适用前提。
- 29
Flink 窗口触发器与迟到数据处理
讲清 Trigger 的触发时机与几种内置实现,以及 Watermark、allowedLateness、侧输出流三层迟到数据处理机制的组合用法。
- 30
Flink 的窗口类型:滚动、滑动、会话、全局窗口怎么选
对比滚动、滑动、会话、全局四类窗口的语义与状态开销,结合实际业务场景(PV 统计、近 N 分钟指标、用户会话)说明选型逻辑。
- 31
Flink 的三种时间语义与 Watermark 机制
讲清事件时间、摄入时间、处理时间的区别,以及 Watermark 的生成方式、传播规则和「多长时间算迟到」的工程权衡。
- 32
怎么理解 Flink 的流批一体
从「批是流的特例」出发,讲清 Flink 如何用一套引擎、一套 API 同时跑有界流和无界流,以及流批一体在 DataStream/Table API 层的落地方式。
- 33
Flink 的整体架构与核心角色:JobManager、TaskManager 各干什么
讲清 Flink 主从架构中 JobManager、TaskManager、Dispatcher、ResourceManager 的分工,以及 Task Slot、算子链这些资源与调度层面的关键概念。
- 34
Spark SQL 的 Catalyst 优化器原理是什么?一条 SQL 是怎么变成物理计划的?
考察 Catalyst 的完整流水线:逻辑计划解析、Analyzer 绑定元数据、规则优化(谓词下推/列裁剪/常量折叠)、代价模型选 join 策略、生成物理计划与 code-gen 执行。
- 35
Spark on YARN 的提交与执行流程是怎样的?client 和 cluster 模式区别在哪?
考察 Spark 在 YARN 上的完整生命周期:ApplicationMaster 申请资源、driver 位置(client/cluster)、executor 注册与任务分发,以及两种部署模式的网络拓扑差异和选型。
- 36
cache/persist 和 checkpoint 有什么区别?分别什么时候用?
考察两种物化机制的本质差异:cache 保留血缘、内存/磁盘存储、服务于复用提速;checkpoint 切断血缘、写可靠存储、服务于长链容错,以及 cache 后再 checkpoint 的标准用法。
- 37
Spark 数据倾斜怎么处理?从定位到治理的完整方法论
考察数据倾斜的实战处理:从 UI 指标定位倾斜,到加盐打散、两阶段聚合、广播小表、过滤热点 key 等手段的取舍,以及 AQE 自动倾斜优化的边界。
- 38
Spark AQE(自适应查询执行)有哪三大优化能力?原理是什么?
考察对 Spark 3.x AQE 的理解:运行时利用 shuffle 物化后的真实统计,动态合并小分区、切换 join 策略(SMJ 转 BHJ)、拆分倾斜分区,解决计划阶段统计不准的问题。
- 39
Spark 的统一内存模型怎么讲?Execution 和 Storage 内存是怎么动态共享的?
考察 Spark 1.6+ 统一内存管理:execution 与 storage 区域动态借用、on-heap/off-heap 的划分、OOM 时的逐出与 spill 策略,以及 spark.memory.fraction 等参数的调优逻辑。
- 40
Broadcast Join 的原理是什么?阈值怎么定?有哪些坑?
考察广播 join 的完整链路:driver 收集、TorrentBroadcast 分块分发、executor 建 hash 表探测,autoBroadcastJoinThreshold 的语义与调优,以及统计失真、driver OOM 等典型坑。
- 41
Spark Join 有哪几种实现?生产上怎么选型?
考察对 Broadcast Hash Join、Shuffled Hash Join、Sort Merge Join 三种实现的原理与适用场景,以及 Catalyst 的 join 选择逻辑和强制广播的 hint 写法。
- 42
reduceByKey 和 groupByKey 有什么区别?为什么生产上基本不用 groupByKey?
考察对 map 端预聚合(combine)的理解:reduceByKey 在 shuffle 前做本地聚合削减数据量,groupByKey 全量搬运,网络 IO 和内存压力差异可达数量级,以及 groupByKey 不可替换的场景。
- 43
Spark Shuffle 是怎么演进的?Hash、Sort、Tungsten 各自解决了什么问题?
考察对 Spark shuffle 机制演进的理解:HashShuffle 的小文件问题、SortShuffleManager 的排序与归并、unsafe/sort 分支的选择条件,以及 Tungsten 的二进制排序和堆外内存优化。
- 44
Spark 的宽依赖和窄依赖怎么区分?Stage 是怎么划分的?
考察 DAG 调度核心:宽窄依赖的本质区别在于子分区是否依赖父 RDD 全部分区,stage 以 shuffle(宽依赖)为边界切分,决定了流水线执行与失败重算的粒度。
- 45
RDD 是什么?它的血缘机制和容错原理怎么讲清楚?
考察对 Spark 计算抽象的理解:RDD 五大特性、immutable 设计的动机、血缘(lineage)如何通过重算实现容错,以及血缘过长时 checkpoint 的兜底作用。
- 46
Kafka 到下游系统的端到端 Exactly-Once 怎么实现?
拆解"端到端"的三段语义,讲清 Kafka 事务 + 位移原子提交的内环方案、Flink 两阶段提交检查点的外环方案,以及什么时候该退回业务幂等。
- 47
Kafka、RocketMQ、Pulsar 怎么选型?各自适合什么场景?
从架构模型、吞吐延迟、功能特性(延迟消息/事务/死信)、生态四个维度对比三者,给出日志流选 Kafka、业务消息选 RocketMQ、云原生多租户看 Pulsar 的选型逻辑。
- 48
Kafka 消息积压怎么排查?怎么快速扩容消费?
以 lag 监控为入口,按"消费慢、分区不均、Rebalance 频繁、下游瓶颈"四类根因排查,给出临时扩容、加消费者、加分区、跳过历史消息的分级处置方案。
- 49
Kafka 分区数怎么定?消息有序性怎么保证?
分区数从吞吐目标、消费者并行度、Broker 负载三方面推算,讲清单分区内有序、全局无序的模型,以及按 key 哈希保业务有序的正确姿势。
- 50
Kafka 为什么能做到高吞吐?顺序写、零拷贝、页缓存、批量处理怎么配合?
从磁盘顺序追加、Page Cache 读写缓冲、sendfile 零拷贝、端到端批量压缩四个层面解释 Kafka 的高吞吐,纠正"消息队列都慢在磁盘"的直觉误区。
- 51
Kafka Rebalance 是什么机制?会带来哪些影响,怎么缓解?
讲清 Rebalance 的触发条件和三个阶段的流程,说透 Stop The World、重复消费两大影响,以及静态成员、Cooperative 协议等缓解手段。
- 52
Kafka 为什么会重复消费?消费位移应该怎么管理?
重复消费的根源是"处理"和"提交位移"不是原子的,拆解自动提交的坑、手动提交的两种模式,给出先处理后提交、业务幂等兜底的工程方案。
- 53
Kafka 幂等生产者和事务分别解决了什么问题?底层怎么实现的?
幂等解决单分区内的重复写入(PID+序列号去重),事务解决跨分区跨主题的原子写,两阶段提交 + 事务协调器,并能说出各自的边界和代价。
- 54
Kafka 的 acks 机制是什么?怎么配置才能保证数据不丢失?
说清 acks 0/1/all 三档语义,给出不丢失的最小配置组合(acks=all + min.insync.replicas + retries),并点破"不丢"是生产、Broker、消费三段的事。
- 55
Kafka 整体架构是怎样的?ISR 机制解决了什么问题?
讲清 Broker、Controller、分区副本的角色分工,重点说透 ISR 的入列出列条件、HW 与 LEO 的关系,以及 ISR 为什么能在可靠性和可用性之间取平衡。
- 56
大厂 SQL 手撕常见题型有哪些?答题框架和避坑指南
SQL 手撕题集中在 TopN、连续行为、留存转化、行列转换四大类,答题框架是「确认口径、定粒度、套模板、补边界」,先写对再写快。
- 57
SQL 执行慢怎么排查?执行计划、数据倾斜、参数调优三板斧
慢 SQL 排查遵循「看计划、找倾斜、查数据」三步:explain 确认 join 策略与裁剪,任务耗时分布定位倾斜,统计信息和资源配置兜底。
- 58
用 row_number 去重有哪几种变体?distinct、group by、窗口函数怎么选?
row_number 按业务键分区取 rn=1 保留最新一条是主流去重法,变体含按时间取最新、多字段优先级、保序去重,掌握与 distinct/group by 的选型边界。
- 59
连续登录、留存率这类 SQL 怎么写?日期差分组与 lag 两种解法
连续登录用「日期减排名」构造分组键识别连续区间,留存率用首日 cohort 自连接或 lag 算间隔,两类题都要先去重再套模板。
- 60
TopN 与组内排序类 SQL 怎么写?row_number、rank 实战套路
TopN 标准套路是窗口函数编号加外层过滤,掌握每组 TopN、全局 TopN、并列处理、TopN 关联明细四种变体及 order by limit 的边界。
- 61
行转列、列转行分别怎么写?concat_ws、collect_list、lateral view 实战
行转列用 collect_set/collect_list 聚合加 concat_ws 拼接,列转行用 lateral view explode 展开数组,两类操作都要配合 group by 和 UDTF 理解。
- 62
窗口函数有哪几类?row_number、rank、lag 各适合什么场景?
窗口函数分排序、聚合、取值、分布四类,核心是 partition by 分组加 order by 排序加窗口帧,掌握 TopN、环比、去重三大高频用法。
- 63
Hive/Spark SQL 中 map join 是什么?数据倾斜的 join 怎么优化?
map join 把小表广播到 map 端免 shuffle;skew join 通过倾斜 key 单独拆分、加盐打散或两阶段聚合解决热点,掌握适用条件和参数。
- 64
Hive 小文件问题是怎么产生的?如何治理?
小文件拖垮 NameNode 并放大计算开销;成因在 reduce 数、动态分区、实时写入三个源头,治理手段分写入时合并和存量合并两条线。
- 65
Hive 分区表和分桶表有什么区别?怎么设计才合理?
分区按列值切目录做查询裁剪,分桶按哈希散列文件控制数据分布;掌握两者粒度、动态分区风险、采样和 join 优化中的分桶用法。
- 66
Hive 内部表、外部表、临时表有什么区别?drop 表时数据会怎样?
内部表由 Hive 全权管理数据,外部表只登记元数据,临时表只存活于当前会话;核心考点是 drop 行为、建表 location 语义和生产场景选型。
- 67
Hive 架构是什么?一条 Hive SQL 是如何转成 MR 或 Spark 执行的?
讲清 Hive 的 Driver/Metastore/执行引擎三层结构,SQL 经解析、逻辑计划、优化、物理计划四个阶段编译成 MR/Spark 任务,掌握关键算子和优化点。
- 68
OLAP 高频场景题:用户画像系统怎么设计
用户画像系统核心是三件事:ID-Mapping 打通身份、标签分层存储(明细宽表 + 位图)、圈人查询用位图交并加速,存储选型按更新频率和查询模式拆给 Doris 与 CK。
- 69
OLAP 高频场景题:实时大屏怎么设计
实时大屏设计核心是分层降载:Kafka 接流、Flink 做窗口预聚合、OLAP 存多粒度结果、缓存挡并发,让大屏查询只扫小数据量,秒级刷新生生不息。
- 70
OLAP 数据导入方式与攒批:为什么小批量高频写入是毒药
OLAP 引擎按批组织存储,ClickHouse 攒批防 part 爆炸,Doris Stream Load 按批次生成 segment;导入调优核心是批大小、频率与上游幂等重试。
- 71
位图索引与 BloomFilter 在 OLAP 中的应用
位图索引把低基数列的等值/集合查询转成位运算,Doris/StarRocks 还用它做精确去重加速;BloomFilter 用哈希概率结构做低成本存在性过滤,牺牲一点误判换 IO 大降。
- 72
OLAP 引擎选型方法论:从数据量、并发、更新频率出发
OLAP 选型先定三个硬指标:数据量级与增速、查询并发与延迟要求、数据更新频率,再叠加 join 复杂度、团队运维能力和生态,用排除法收敛候选。
- 73
Kylin 预计算思想与现状:Cube 时代的遗产
Kylin 核心思想是用空间换时间,按维度组合预计算 Cube 存 HBase,查询下压命中 Cuboid;实时引擎崛起后其重建模模式收缩到超大规模固定报表场景。
- 74
ClickHouse vs Doris 怎么选:从更新、并发、Join 到运维的对比
ClickHouse 单机性能极致、适合明细大宽表追加写,Doris 强在高并发、行级更新、多表 Join 与 MySQL 生态,选型核心是更新频率和并发模式。
- 75
Doris 物化视图与 Rollup:预聚合的两种形态
Rollup 是表内按维度子集预聚合的物化视图,随基表同步更新;异步物化视图支持多表 join 与定时刷新,选型看是否需要跨表和刷新灵活性。
- 76
Doris 架构拆解:FE、BE 的职责与三种数据模型
Doris 采用 FE 管元数据与查询规划、BE 管存储与执行的 MPP 架构,数据模型分明细、聚合、主键三种,选型核心看更新需求与查询模式。
- 77
ClickHouse 物化视图与 Projection:两种预计算加速路线
物化视图在写入时触发转换写入目标表,Projection 是把不同排序或聚合的数据冗余存进 part 内部,查询自动路由,二者分别适合预聚合和多排序键场景。
- 78
ClickHouse 表引擎家族与选型:MergeTree 系、Log 系与外表引擎
ClickHouse 表引擎分 MergeTree、Log、集成、特殊四大类,核心选型逻辑是围绕 MergeTree 变体:去重用 Replacing、预聚合用 Aggregating、求和用 Summing。
- 79
ClickHouse 为什么读写都快:列存、稀疏索引、向量化与 MergeTree
ClickHouse 快在四个层面:列式存储减少 IO、稀疏主键索引快速定位 granule、向量化执行榨干 CPU、MergeTree 后台合并保证写入吞吐。
- 80
数据资产盘点怎么做?存储与计算成本治理有哪些招?
数据资产盘点的方法(元数据驱动、打标签、定责任人),以及存储分层、僵尸表下线、计算优化的成本治理组合拳。
- 81
埋点体系怎么设计?数据采集架构怎么搭?
埋点方案选型(代码/全埋点/可视化)、事件模型设计、从端上 SDK 到 Kafka 入湖的采集链路,以及数据质量保障手段。
- 82
数据权限体系怎么设计?敏感数据脱敏有哪些手段?
讲清 RBAC/ABAC 权限模型、Ranger 的列级管控,以及静态/动态脱敏的实现方式、脱敏算法选择和审计要求。
- 83
元数据管理与数据目录怎么做?DataHub 与 Atlas 对比
元数据的三类划分、数据目录的核心能力(搜索/血缘/owner),以及 DataHub 和 Apache Atlas 的架构差异与选型建议。
- 84
数据治理体系到底包含什么?元数据、质量、安全、成本四条线
数据治理的四条主线:元数据管理、数据质量、数据安全与合规、成本与生命周期,各自的抓手、工具和落地顺序。
- 85
湖仓一体架构怎么落地?从分层设计到引擎选型
湖仓一体的落地路径:存储层统一用湖格式、计算层多引擎共存、按 ODS/DWD/DWS/ADS 分层建模,以及迁移时的现实步骤。
- 86
数据湖的时间旅行和增量读取原理是什么?
基于快照的时间旅行查询、快照保留策略,以及增量读取(incremental read/CDC)的实现方式和典型用途。
- 87
数据湖的 ACID 是怎么实现的?Schema 演进又有哪些坑?
讲清湖表格式用快照隔离+乐观并发实现 ACID 的原理,以及列变更的兼容性规则与演进中的工程细节。
- 88
Iceberg、Hudi、Delta Lake 三大湖格式怎么选?
从元数据架构、更新模型、生态绑定三个角度对比 Iceberg/Hudi/Delta Lake,给出不同业务场景下的选型结论。
- 89
数据湖和数据仓库有什么区别?面试标准答法与延伸
数据湖与数仓在数据形态、schema 时机、成本模型、适用场景上的本质差异,以及为什么行业在往湖仓一体收敛。
- 90
CountDownLatch、CyclicBarrier 与 Semaphore 的原理和使用场景
对比三个 JUC 同步工具的实现原理(AQS 共享模式/Condition/许可)、可复用性差异和典型场景,结合大数据任务编排给出落地示例。
- 91
ThreadLocal 原理与内存泄漏问题
讲清 ThreadLocal 的线程私有副本机制、Entry 弱引用设计导致的内存泄漏原因、线程池场景的正确用法,以及和 InheritableThreadLocal 的区别。
- 92
线程池核心参数、拒绝策略与线程数怎么定
讲清 ThreadPoolExecutor 七个参数的任务调度流程、四种内置拒绝策略、Executors 工厂的坑,以及 IO/CPU 密集型线程数估算方法。
- 93
AQS 原理与 ReentrantLock 实现剖析
讲清 AQS 的 state+CLH 队列+模板方法三大核心、独占与共享两种模式,以及 ReentrantLock 公平/非公平锁在 AQS 上的实现差异。
- 94
synchronized 锁升级过程:无锁、偏向锁、轻量级锁、重量级锁
从对象头 Mark Word 讲起,讲清 JDK 6 之后 synchronized 的四级锁升级路径、每级的实现原理和触发条件,以及与 ReentrantLock 的对比。
- 95
volatile 关键字与 Java 内存模型(JMM)
讲清 JMM 的主内存/工作内存抽象、volatile 保证可见性和有序性但不保证原子性的原因、内存屏障原理,以及双重检查锁的正确写法。
- 96
类加载机制与双亲委派模型
讲清加载-验证-准备-解析-初始化五个阶段、三层类加载器与双亲委派的工作流程和意义,以及 SPI、Tomcat 等破坏委派的实际场景。
- 97
垃圾回收算法与 G1 收集器原理
从标记-清除、复制、标记-整理三种基础算法讲起,解释分代假说与 GC Roots,重点讲 G1 的 Region 划分、回收流程和停顿控制机制。
- 98
JVM 运行时内存结构与各区域职责
按线程共享/私有讲清堆、方法区、虚拟机栈、本地方法栈、程序计数器的职责,结合大数据场景说明 OOM 排查思路和常见参数。
- 99
ConcurrentHashMap 在 JDK 7 与 JDK 8 的实现演进
讲清分段锁 Segment 到 CAS+synchronized 桶锁的演进逻辑、put 流程、size 统计方式变化,以及为什么读操作完全不加锁。
- 100
HashMap 底层原理、扩容机制与树化条件
大数据面试 Java 必考题。讲清哈希桶数组+链表+红黑树的结构、put 流程、扩容 rehash 细节,以及树化阈值 8 和退化阈值 6 的设计原因。