# 入门

# 服务端

# 数据库

# 中间件

# 算法

概览

整体规划 LeetCode Hot 100 的刷题顺序与题型分布,按「数据结构 + 难度」拆分高频题。

020-有效的括号

使用栈(ArrayDeque)与 Map 判断括号字符串是否有效,并解释为什么更推荐用 Deque 而不是老旧的 Stack。

136-只出现一次的数字

位运算经典题:利用异或 XOR 的性质,相同数字异或为 0,0 与任何数异或等于该数本身。

763-划分字母区间

贪心算法经典题:先记录每个字符最后出现的位置,然后遍历字符串,当到达当前片段的最远边界时进行划分。

070-爬楼梯

经典动态规划入门题,斐波那契数列变种。理解状态转移方程 dp[i] = dp[i-1] + dp[i-2]。

155-最小栈

设计一个支持 push、pop、top 操作,并能在常数时间内检索到最小元素的栈,使用双栈(数据栈+辅助栈)实现。

118-杨辉三角

经典二维动态规划。每个数等于它左上方和右上方的数的和。理解二维数组的遍历和边界处理。

394-字符串解码

解析 k[encoded_string] 编码规则,使用双栈保存重复次数与字符串上下文,支持嵌套括号并在 O(n) 时间内完成解码。

198-打家劫舍

经典动态规划。不能偷相邻房屋,求最大金额。状态转移:dp[i] = max(dp[i-1], dp[i-2] + nums[i])。

739-每日温度

使用单调栈(存下标)在一次线性扫描中求出每一天距离下一个更高温度的天数。

084-柱状图中最大的矩形

使用单调递增栈(存下标)配合哨兵技巧,在一次遍历中找出以每个柱子为最矮高度时的最大矩形面积。

169-多数元素

找出现次数超过 n/2 的元素。摩尔投票法(Boyer-Moore Voting)是最优解,时间 O(n),空间 O(1)。

075-颜色分类

荷兰国旗问题。使用三指针(left、right、i)一趟扫描完成原地排序,时间 O(n),空间 O(1)。

347-前 K 个高频元素

哈希表统计频率 + 小根堆只维护 k 个候选,时间复杂度 O(n log k)。

295-数据流的中位数

经典“双堆”模型:用大顶堆维护较小一半、小顶堆维护较大一半,在线查询中位数。

121-买卖股票的最佳时机

使用贪心算法,遍历过程中记录历史最低价,计算每天卖出能获得的最大利润。

055-跳跃游戏

使用贪心算法,维护从起点能到达的最远位置,判断是否能到达最后一个下标。

045-跳跃游戏 II

使用贪心算法,维护每跳的边界,在必须跳跃时才增加步数,求得最小跳跃次数。

215-数组中第k个最大元素

用 Quickselect(随机化分区)在期望 O(n) 时间内找到第 k 大元素。

# 面试

概览

整理真实 Java 面试中遇到的高频问题与完整题目,还原现场语境并给出解析与答题思路。

Java 基础概览

从语法、面向对象、常用类库到异常与泛型,系统梳理 Java 基础知识点,为面试查漏补缺。

初步介绍

从整体视角梳理 Java 集合框架的接口层次、常见实现与典型使用场景,为后续深入源码与面试题打基础。

什么是“编译型”和“解释型”语言?

搞清楚 Java 源码是如何从 .java 走到 .class,再到真正跑在 CPU 上:编译、字节码、类加载、解释执行与 JIT 编译。

ArrayList 不同 JDK 版本的实现差异总览

对比 JDK 7 / 8 / 11 / 21 中 ArrayList 的关键实现差异,帮助在面试中答出“版本相关”的细节。

ArrayList 源码精读(JDK 7 中文注释版)

基于 JDK 7 的 ArrayList 源码,配合中文注释,深入理解底层实现细节。

ArrayList 源码精读(JDK 8 中文注释版)

基于 JDK 8 的 ArrayList 源码,配合中文注释,梳理扩容策略、迭代器与 fail-fast 机制等核心实现。

ArrayList 源码精读(JDK 11 中文注释版)

基于 JDK 11 的 ArrayList 源码,结合中文注释,对比 JDK 8 之后的演进与优化。

LinkedList 源码精读(JDK 8 中文注释版)

基于 JDK 8 的 LinkedList 源码,配合中文注释,梳理链表节点链接、按索引定位、迭代器 fail-fast、序列化与 Spliterator 等核心实现。

ArrayList 源码精读(JDK 21 中文注释版)

基于 JDK 21 的 ArrayList 源码,配合中文注释,了解最新 LTS 版本中的实现细节与新增特性。

HashMap 源码精读(JDK 8中文注释版)

基于 JDK HashMap 源码,结合中文注释,系统梳理哈希表底层结构、hash 扰动函数、扩容与树化机制、fail-fast 迭代器等核心实现。

ArrayList 高频面试题

系统梳理与 ArrayList 相关的高频面试题,从基础用法、扩容机制到并发与源码细节。

HashMap 高频面试题

系统梳理与 HashMap 相关的高频面试题,从基础特性、底层结构、扩容与树化机制,到并发与 JDK 版本差异。

# LangChain AI

LangChain AI 生态详解:LangChain、LangGraph、LangSmith 三大核心

LangChain AI 生态系统完整指南,涵盖 LangChain 框架、LangGraph 编排引擎、LangSmith 开发平台的定位、核心功能与使用场景。

LangChain 框架详解:构建 LLM 应用的利器

LangChain 框架深度解析,涵盖核心概念、组件架构、Agent 系统、工具集成与最佳实践。

Agents(智能体)

Agent 核心概念详解,涵盖模型配置、Tool 系统、System Prompt、结构化输出、记忆、流式传输等高级功能

LangGraph 详解:构建复杂 Agent 工作流

LangGraph 图式工作流框架深度解析,涵盖核心概念、状态管理、节点编排、持久化执行与高级用法。

LangSmith 详解:LLM 应用开发与运维平台

LangSmith 开发运维平台完整指南,涵盖追踪调试、评估测试、监控分析、成本控制与团队协作功能。

Tools(工具)

Tool 完整指南,涵盖创建工具、访问上下文、ToolNode 使用、错误处理、路由和预构建工具

Models(模型)

了解如何在 LangChain 中使用 AI 模型,包括基本用法、参数配置、调用方法、工具调用、结构化输出等核心功能。

Messages(消息)

了解 LangChain 中的消息类型、内容格式、元数据以及如何在多模态对话中使用消息。

使用 LangChain 构建 RAG Agent

学习如何使用 LangChain 构建检索增强生成(RAG)应用,包括索引、检索和生成的完整流程。

Retrieval(检索)

了解检索如何增强 LLM,包括知识库构建、RAG 架构(2-Step RAG、Agentic RAG、Hybrid RAG)以及核心组件。

Structured Output(结构化输出)

了解如何让 LangChain Agent 以结构化格式(如 JSON、Pydantic 模型)返回数据,而不是自然语言响应。

Human-in-the-Loop(人在回路)

了解如何使用 Human-in-the-Loop 中间件为 Agent 的 tool calls 添加人工监督,支持批准、编辑或拒绝操作。

Evaluate Agent Performance(评估 Agent 性能)

了解如何使用 LangSmith evaluations 和预构建的 evaluators 来评估 Agent 的性能,包括 trajectory match 和 LLM-as-judge。

Test(测试)

了解如何测试 Agent 应用,包括单元测试、集成测试、trajectory match evaluators 和 LangSmith 集成。

Short-term Memory(短期记忆)

了解如何为 Agent 添加短期记忆(thread-level persistence),包括消息修剪、删除、总结以及访问和修改记忆的模式。

Long-term Memory(长期记忆)

了解如何使用 LangGraph persistence 和 memory store 为 LangChain Agents 实现长期记忆,包括在 tools 中读写记忆。

LangSmith 部署

了解如何使用 LangSmith 将 LangChain agent 部署到生产环境

Streaming 概述

了解如何从 agent 运行中流式传输实时更新

Guardrails

为你的 agents 实现安全检查和内容过滤

使用 LangChain 构建语义搜索引擎

学习如何使用 LangChain 构建 PDF 文档的语义搜索引擎

Agents 中的 Context engineering

了解如何通过提供正确的上下文和信息来构建可靠的 agents

Model Context Protocol (MCP)

了解如何使用 Model Context Protocol 将外部工具集成到 LangChain agents

构建 SQL agent

学习如何构建可以使用 LangChain agents 回答 SQL database 问题的 agent

使用 LangChain 构建 Voice agent

了解如何构建可以进行自然语音对话的 Voice agents

组件架构

LangChain 的组件如何协同工作以创建复杂的 AI 应用

Runtime

LangChain Agent 的运行时上下文、存储和流式传输

LangSmith 可观测性

使用 LangSmith 追踪和调试 LangChain Agent

理念

LangChain 的核心理念和发展历史

LangChain Academy

LangChain 官方学习平台

获取帮助

连接 LangChain 社区,获取学习资源和支持

LangSmith Studio

LangSmith Studio 本地开发和调试工具

Agent Chat UI

Agent Chat UI 用于与 LangChain Agent 交互

# 入门指南

# 性能测试

什么是性能测试

理解性能测试的定义、核心目标、关键指标、常见问题和基本流程,建立性能压测的整体认知。

性能测试类型详解

系统梳理基准测试、负载测试、压力测试、稳定性测试和容量测试的定义、目标、适用场景与组合方式。

性能测试核心指标

理解 QPS、TPS、响应时间、并发数、吞吐量、错误率与 P95/P99 的定义、区别、适用场景和核心关系。

如何分析压测结果

建立压测结果分析的基本方法,学会结合 QPS、RT、P95/P99、错误率与系统资源定位性能瓶颈。

主流压测工具对比

对比 JMeter、k6、Gatling、Locust、wrk 的特点、优缺点和适用场景,帮助选择合适的压测工具。

JMeter基础使用

从安装、核心结构、线程组、HTTP 请求、监听器到命令行执行,快速掌握 JMeter 的基础使用方法。

JMeter核心组件详解

理解 Thread Group、Sampler、Config Element、Timer、Assertion、Listener 的职责与配置方式,搭建企业级 JMeter 脚本基础。

JMeter参数化详解

掌握 CSV Data Set Config、变量引用与动态函数生成等参数化方法,避免压测数据冲突并更真实地模拟业务场景。

JMeter接口关联(Correlation)

掌握从响应中提取 token、请求 ID 等动态数据并传递给后续接口的方法,构建真实业务流程压测脚本。

JMeter业务流程压测

从单接口压测升级到真实业务链路压测,掌握流程串联、流量比例设计、事务统计和企业级脚本组织方法。

JMeter断言与结果校验

掌握常见断言与失败校验方法,避免把错误请求当成成功压测结果。

JMeter分布式压测

理解 JMeter master-slave 架构、部署步骤和常见坑,解决单机压测能力不足的问题。

压测方案设计方法

学会从业务目标、核心接口、成功标准和风险控制四个维度设计一份可执行的压测方案。

业务压测模型设计

学会把真实用户行为拆成业务场景和流量比例,设计更接近线上访问模式的压测模型。

压测数据准备

理解账号、商品、订单、库存等压测数据的准备原则,避免脏数据和重复消费导致结果失真。

压测环境规划

从压测机、被测系统、网络、监控和依赖组件角度规划一套可执行的压测环境。

压测环境与生产环境差异

理解环境差异为什么会导致压测结论失真,并学会从配置、数据、流量和依赖角度评估偏差。

性能瓶颈分析方法

建立从现象到根因的性能分析思路,学会用指标和链路逐步定位真正瓶颈。

Linux性能分析工具

掌握 top、vmstat、iostat、sar 等基础工具,用系统视角判断 CPU、内存和 IO 是否成为瓶颈。

JVM性能分析

从 GC、堆内存、线程和堆栈入手,掌握 Java 应用压测中的 JVM 分析方法。

Java性能瓶颈分析

从锁竞争、线程池、对象创建和序列化等角度分析 Java 应用的常见性能瓶颈。

SQL性能优化

用后端工程师能落地的方式理解慢 SQL、索引、执行计划和常见数据库性能优化手段。

Redis性能问题

理解热 key、慢命令、连接池和大 value 等 Redis 常见性能问题及其排查思路。

压测监控体系

理解压测时为什么必须同时看应用、JVM、系统、数据库和中间件指标,并掌握 Prometheus 与 Grafana 的基础落地方法。

接口压测案例

通过一个订单查询接口的完整案例,理解接口压测从目标设定、脚本设计、结果分析到优化建议的全过程。

系统压测案例

通过一个简化电商系统案例,理解系统级压测如何做流量建模、全链路观察和瓶颈定位。

性能优化案例

通过一个订单创建链路的优化案例,理解性能问题如何从现象定位到根因,再落到具体优化动作。

压测报告编写

掌握压测报告的基本结构、关键数据和写作方法,让测试结果能被研发、测试和业务方真正使用。

企业级压测流程

理解企业里性能测试从需求、方案、执行、分析到复测的完整流程,知道每个阶段要做什么。

性能测试最佳实践

总结性能测试中最实用的原则与经验,帮助 Java 后端工程师少走弯路,压得更准、看得更清、改得更稳。

# AI

AI 技术概览:从入门到面试

系统性梳理 AI 核心概念、技术栈和面试考点,涵盖 RAG、Agent、MCP 等热门技术方向。

Token 机制详解:大模型的文本处理单位

深入讲解 Token 的概念、计数规则、计费方式,以及 Token 对成本和性能的影响。

上下文窗口详解:大模型的'记忆力'

深入讲解上下文窗口的概念、技术实现、优化方案,以及长上下文应用场景。

Temperature 参数详解:控制 AI 的创造性

深入讲解 Temperature、Top-P 等采样参数的原理、设置建议和实际效果对比。

Prompt 工程入门:如何写好提示词

系统讲解 Prompt 工程的核心技巧、常用模式和实战案例,提升与大模型的交互效果。

RAG 技术详解:检索增强生成

深入讲解 RAG 技术原理、架构设计、实现方案,附带面试高频考点和参考回答。

MCP 协议解析:模型上下文协议

深入讲解 MCP(Model Context Protocol)协议原理、架构设计和应用场景,附带面试考点解析。

AI Agent 技术:智能体架构详解

深入讲解 AI Agent 的核心架构、设计模式、实现方案,附带面试高频考点和参考回答。

AI Agent 技能(Skill)详解:从概念到实现

深入讲解 AI Agent 技能的概念、设计模式、实现方案,以及如何为 Agent 添加自定义技能。

Function Calling 详解:让 AI 安全调用外部函数

深入讲解 Function Calling 的原理、实现方式、安全机制,以及如何在 Agent 中集成函数调用。

LLM 大语言模型详解:从 Transformer 到应用

深入讲解 LLM 大语言模型的工作原理、Transformer 架构、训练流程和主流模型对比。

Embedding 与向量搜索详解:AI 的语义理解基础

深入讲解 Embedding 向量化、向量数据库、语义搜索的原理和实战应用。

向量数据库详解:从原理到生产实践

深入讲解向量数据库的工作原理、索引技术、主流产品对比,以及生产环境部署和优化方案。

AI 工作流编排详解:从 LangChain 到 Dify

深入讲解 AI 工作流编排的概念、主流框架对比、设计模式,以及生产环境实战案例。