- 博客(214)
- 收藏
- 关注
原创 Jev 模型到底是什么?从一条客服消息看懂 AI 如何做决策
给 AI 一段客户投诉,让它写回复,大家已经很熟悉了。但在回复之前,系统往往还要处理另一类问题:这条消息该交给谁?事情有多急?信息够不够,是否需要人工介入?这些判断可能只需要一个选项、一个分数,甚至一个“是”或“否”。当它们每天发生几十万次时,每次调用的耗时、费用和错误处理,就成了实实在在的工程问题。Jev 瞄准的正是这类场景。2026 年 9 月 15 日,TypeSafe AI 发布了 Jev,称它为。这个名字借用了《思考,快与慢》里“系统一”的概念,强调快速、聚焦的判断。
2026-09-21 17:41:01
149
原创 Pi Agent 学习笔记:扩展如何介入工具调用
本文探讨了在Agent系统中,模型提出文件修改后是否应直接执行的问题。通过Pi框架的扩展机制,可在工具调用前(tool_call)和后(tool_result)设置钩子,实现权限检查、参数调整、结果脱敏等逻辑。关键在于:执行前可阻断操作,执行后仅能修改返回描述,无法撤销真实变更。多个处理器按顺序执行,任一阻断即终止后续流程;异常处理也因阶段不同而异——前处理异常阻止执行,后处理异常仅影响结果描述。扩展需可信,因其拥有系统权限,且参数修改不触发重校验。理解这些行为,才能安全设计自动化流程。
2026-09-17 22:02:41
163
原创 Pi Agent 学习笔记:对话太长以后,如何压缩上下文
Pi 的压缩机制在保持任务连续性的同时,平衡上下文长度限制。它通过智能判断触发压缩时机,保留关键信息如目标、约束、进度与下一步,避免摘要丢失核心依据。压缩时优先保留工具调用的完整链路,确保上下文结构合理;近期原始记录与摘要结合使用,支持模型精准执行后续任务。旧摘要随新进展迭代更新,原始历史长期保存以备回查。该机制兼顾效率与准确性,使复杂任务在有限上下文中持续推进。
2026-09-16 16:13:21
75
原创 Pi Agent 学习笔记:对话怎样保存、分支与恢复
Pi 通过父子关系组织会话记录,支持多分支探索与灵活回溯。每条记录独立保存,父节点决定承接关系,确保上下文仅包含当前路径。历史完整保留,但模型仅接收当前分支路径,避免信息混淆。恢复会话时,基于文件重建结构,结合外部状态验证工具结果,不自动重执行有副作用操作。测试验证了分支、摘要与恢复逻辑的正确性,强调会话记录与实际系统状态需分开看待。
2026-09-16 16:08:52
131
原创 Pi Agent 学习笔记:多个工具怎样并行执行
Pi的工具调度支持串行与并行,通过前置检查顺序准备、并行执行、按原序返回结果,确保依赖清晰、状态可追溯。并行提升效率,但需工具声明明确无依赖;部分失败不自动回滚,需手动补偿;取消仅终止后续操作,不撤销已生效修改。测试验证了结果排序与局部阻断逻辑,强调并行虽省时,却需承担状态管理与恢复成本。
2026-09-15 14:16:19
343
原创 Pi Agent 学习笔记:不同模型如何接入同一套工具循环
Pi 通过适配层统一模型接口差异,实现工具调用循环的稳定运行。无论 OpenAI 还是 Anthropic,均转换为统一格式:含调用编号、工具名与参数的结构化请求。适配层处理请求/响应双向转换,确保字段语义不变、调用关系不乱,并支持流式参数合并与错误隔离。关键在于:保留动作含义,而非简单映射;区分模型失败与工具失败,避免无效重试;对模型能力缺失(如图像)做合理降级提示。验证依赖模拟测试,确保跨接口一致性。
2026-09-13 15:01:01
78
原创 Pi Agent 学习笔记:一次提问背后的工具调用循环
PiAgent通过多轮交互实现工具调用:用户输入后,模型首次返回工具请求,Pi执行并返回结果至上下文,第二次请求模型基于真实数据生成回答。一次Agent Run可含多个Turn,依赖上下文传递工具结果。错误时返回ToolResult(isError=true),模型可据此调整策略。事件流驱动界面与会话同步,确保状态一致。虽增加延迟与Token消耗,但保障任务闭环与容错能力。
2026-09-12 18:45:27
82
原创 LeetCode hot100 题目整理:Java 代码与解题思路
本文总结了多个经典算法题的解法,涵盖哈希表、双指针、滑动窗口等技巧。包括两数之和(哈希优化)、字母异位词分组(排序作键)、最长连续序列(集合去重+贪心)、移动零(双指针)、三数之和(排序+去重剪枝)、无重复字符最长子串(滑动窗口)、盛最多水容器(双指针贪心)、接雨水(双指针维护边界)及字母异位词查找(滑动窗口+数组计数),均体现高效思维与代码精炼。
2026-09-10 18:04:57
210
原创 从搬盘子到缓存管理:用 Java 理解汉诺塔、令牌桶、HashCode 与 LFU
通过生活场景讲解四种编程知识:汉诺塔(递归)、令牌桶(限流)、HashCode(哈希)、LFU(缓存淘汰),并用Java实现。摘要要简洁,不超过150字。</think>本文通过搬盘子、景区通行证、找书、收书四个生活场景,生动讲解汉诺塔递归、令牌桶限流、哈希计算与LFU缓存淘汰,并用Java实现。类比帮助理解设计动机,强调明确规则后,变量与数据结构的作用便清晰易懂。
2026-09-05 13:33:20
157
原创 前台、中台、后台到底是什么?用淘宝的实际业务讲明白
本文围绕软件架构中常见的前台、中台和后台展开,通过真实存在的阿里巴巴电商业务进行通俗讲解。文章以淘宝用户购物、商家处理订单以及会员、商品、交易、营销等公共能力为例,说明前台负责直接服务用户,后台用于商家和运营人员管理业务,中台则将多个业务重复需要的能力统一沉淀并提供复用。同时分析企业建设中台的原因,包括减少重复开发、统一数据与规则、提升新业务上线速度,并进一步区分后台与后端两个容易混淆的概念,最后指出中台并非所有企业的必选架构,只有在业务线较多、公共能力反复建设时才能真正发挥价值。非常适合初学者阅读和理解。
2026-09-01 17:35:23
209
原创 Claude 的“隐形文字水印”是怎么实现的?一文看懂 SynthID-Text
<think>我们根据给定的长文生成一个不超过150字的摘要。需要抓住主要内容:Claude文字水印是统计水印,不插入隐藏字符,通过控制采样过程留下可检测规律;基于SynthID-Text,只修改采样;水印在选词序列中,复制粘贴不消除,但改写/短文本影响检测;不包含用户身份信息;检测是概率性的。摘要需简洁,≤150字(中文字符)。</think>Claude 文字水印并非插入隐藏字符,而是基于 SynthID-Text 方案,在模型采样时用密钥控制选词,使整段文本形成可检测的统计规律。水印不依赖格式,复制粘
2026-09-01 16:42:15
478
原创 LeetCode 双题:415. 字符串相加与 143. 重排链表
本文讲解了两道算法题:字符串相加和重排链表的解法。 字符串相加(415题): 模拟竖式加法,从字符串末尾开始逐位相加 使用双指针和进位变量 注意处理不等长字符串和最后进位 时间复杂度O(n),空间复杂度O(n) 重排链表(143题): 分三步:找中点(快慢指针)、反转后半段、交叉合并前后两部分 注意保存后继节点和边界条件处理 时间复杂度O(n),空间复杂度O(1) 两道题都体现了将复杂操作分解为简单步骤的解题思路。
2026-08-17 11:13:07
306
11
原创 双指针与局部反转:LeetCode 88 + 92 详解
本文通过两道典型题目——合并有序数组和反转链表区间,总结指针操作的共性方法。合并数组时,为避免覆盖未处理数据,采用从后往前填充的方式,利用三个指针分别跟踪两个数组的有效元素和写入位置。反转链表区间时,通过虚拟头节点统一处理边界,先保存后续节点再修改指针方向,最后重新连接反转后的区间。两道题的核心思路都是:选择安全操作方向(数组尾部/链表局部)、预先保存未处理数据、完成修改后正确连接边界。这种"保存-修改-连接"的三步策略,是解决原地修改数据结构问题的通用方法。
2026-08-17 11:11:33
253
4
原创 LangChain 八股不靠背单词:跟着逆境把一个 AI 客服做上线
文章摘要: 《LangChain面试常见问题解析》从实际电商客服案例出发,系统梳理了LangChain框架的核心概念与应用场景。文章通过开发者"小周"的视角,依次解析了从基础问答到复杂Agent系统的演进过程,重点阐述了以下关键点: LangChain的定位与组件体系:作为大模型应用开发框架,其核心包含模型、消息、工具、Agent等抽象层,并与LangGraph、LangSmith形成完整生态链。 版本演进与最佳实践:v1版本聚焦create_agent和LCEL管线,旧版Chain类已迁移至langcha
2026-08-14 00:30:00
709
原创 【LeetCode 912】排序数组——随机化快速排序详解
本文介绍了如何使用随机化快速排序解决LeetCode 912「排序数组」问题。文章详细讲解了快速排序的核心思路:随机选择基准值pivot后,通过双指针将数组划分为小于等于pivot和大于等于pivot的两部分,然后递归排序子数组。重点分析了随机选择pivot的必要性、双指针划分过程的具体实现,以及如何处理重复元素等问题。代码采用Java实现,包含了随机化选择、有序性检查等优化,平均时间复杂度为O(nlogn)。文章通过示例逐步演示了算法执行过程,并强调了实现时需要注意的边界条件和细节问题。
2026-08-14 00:30:00
347
3
原创 把 AI Agent 拉上手术台:QPS、P99、RAG 召回率、幻觉率与任务成功率全拆解
本文系统梳理了AI Agent后端的可观测性指标体系。传统QPS、延迟等HTTP接口指标无法有效评估Agent任务完成度,需从系统性能、执行效果、RAG检索、工具调用、回答质量、成本和安全七个维度构建监测体系。关键创新点包括:1) 区分系统成功/调用成功/任务成功三级口径;2) 提出首次成功率、循环率等过程指标;3) 强调RAG检索与最终回答的完整评估链路;4) 推荐单成功任务成本作为核心成本指标。文章建议优先建设15项核心指标,并通过执行轨迹追踪实现异常根因分析,为Agent系统监控提供了可落地的实践框架
2026-08-12 09:42:10
841
2
原创 从一个会聊天的机器人,到能上生产的 AI 助手:大模型工程面试指南
这篇文章讲述了新手工程师小周在构建电商AI售后助手时遇到的各种挑战,以及如何逐步解决这些问题的过程。文章分为两部分:第一部分解释了Transformer模型的基本原理、自注意力机制、Tokenization等核心概念;第二部分介绍了检索增强生成(RAG)技术,以及如何通过RAG让模型获取最新知识。文章通过具体场景和面试问答形式,深入浅出地讲解了AI模型在实际应用中的工作原理和工程实践要点,包括模型幻觉、参数调整、知识更新等关键问题,为AI工程师提供了实用的技术指导和面试准备建议。 【关键点】 Transfo
2026-08-12 09:36:57
343
2
原创 RAG 八股不必硬背:跟着逆境救活一个“满嘴跑火车”的知识助手
本文以开发知识助手的故事为线索,系统介绍了RAG(检索增强生成)的核心概念、技术流程和常见问题。文章首先通过保修期回答错误的案例,说明RAG如何通过外部知识库补充大模型的知识盲区。接着详细拆解RAG的两条核心链路:离线(文档解析、切块、向量化)和在线(检索、重排、生成)流程。重点探讨了RAG与微调的区别、切块策略选择、Embedding原理等关键技术点,并分析了RAG在减少幻觉、权限控制等方面的优势与局限。全文采用故事化讲解配合技术要点总结的形式,特别标注了面试中的典型问题与回答技巧,为开发者提供了从理
2026-08-10 21:33:15
372
原创 LLM 工具调用八股不靠死背:跟着逆境做一个真的能下单的外卖助手
本文摘要探讨了大模型工具调用(Tool Calling)的概念与实践,通过外卖助手开发案例解析常见问题。文章分为两部分:第一部分阐述工具调用的定义、流程及其与类似概念(如Function Calling、Structured Output)的区别,强调模型仅生成结构化请求而非直接执行动作;第二部分聚焦工具设计规范,指出清晰的Schema设计(明确名称、严格参数、业务描述)对避免错误的重要性。案例中模型因缺乏约束误猜地址,凸显参数校验的必要性。核心结论:工具调用需平衡模型决策与业务控制,通过合理设计确保安全可
2026-08-10 00:30:00
423
原创 Agent 八股不靠死背:跟着逆境把“会聊天的模型”带进公司
摘要: 本文通过新手工程师小林开发企业AI助手的故事,生动讲解了AI Agent的核心概念与实战问题。Agent是由大模型驱动、能自主决策并调用工具完成任务执行的系统,区别于聊天机器人和固定工作流。文章详细剖析了Agent的核心组件(模型、指令、工具、状态和执行循环)、适用场景(非结构化、多轮动态决策任务)以及常见挑战(工具设计、参数校验、错误处理等)。重点探讨了Function Calling机制、工具Schema设计、调用失败处理和幂等性等工程实践问题,并通过"扣款重复执行"等典型案例,帮助读者深入理解
2026-08-09 00:30:00
362
2
原创 Git 八股不靠死记:跟着逆境救回一次“消失的代码”
Git 核心概念与常见问题解析 本文通过开发者小周的故事,系统讲解了 Git 的核心概念和常见问题。主要内容包括: Git 四层结构:工作区、暂存区、本地仓库和远程仓库的关系与流转路径。 基础概念解析: Git 与 SVN 的核心区别(分布式 vs 集中式) 提交对象包含的内容及哈希计算方式 Git 的四种核心对象(Blob/Tree/Commit/Tag) HEAD 和分支的本质(移动的引用指针) 常见问题解答: git add 与 git commit 的实际作用 git fetch 和 git pul
2026-08-08 00:30:00
1083
2
原创 Linux 八股不靠硬背:跟着逆境救一台“失联”的服务器
摘要: 文章以一次服务器故障告警为切入点,通过将Linux系统比作一栋大楼,形象地解析其核心概念和排障思路。主要内容包括: Linux系统结构:分为用户程序、Shell/工具、内核和硬件四层,内核负责调度、内存、文件、网络等核心功能。 用户态与内核态:用户态权限受限,需通过系统调用(如read、write)进入内核态访问资源,切换存在开销。 进程管理:进程是资源分配单位,线程是调度单位;fork()复制进程,exec()替换程序;僵尸进程(未回收的子进程)和孤儿进程(父进程先退出)的区别。 常用命令与状态:
2026-08-07 00:30:00
334
2
原创 分布式八股不靠死背:跟着逆境扛住一次大促
文章摘要: 本文通过逆境改造电商系统的案例,系统介绍了分布式系统的核心概念和常见挑战。从单机系统到分布式架构的演进,重点讲解了CAP定理、BASE理论、一致性模型等基础知识,并深入分析了Quorum机制、脑裂问题、Raft共识算法等关键技术。文章还针对分布式场景下的幂等性、时钟同步等实际问题提供了解决方案,涵盖了分布式面试中的高频考点。通过生动的业务场景和清晰的面试回答模板,帮助读者理解分布式系统的核心思想:如何在不可靠的网络环境中协调多台机器完成可靠的服务。
2026-08-06 00:30:00
323
原创 系统设计八股不靠硬背:陪逆境把校园集市撑到千万用户
这篇文章通过虚构的“拾光集市”校园二手交易平台开发故事,生动讲解了系统设计中的核心概念和实践经验。文章摘要如下: 系统设计方法论:强调需求分析优先,提出从功能确认到容量估算、API设计、核心链路梳理、瓶颈分析和容灾设计的完整流程。 典型问题场景: 流量暴增时采用水平扩展与负载均衡 数据库压力大时引入缓存机制 静态资源优化使用CDN分发 服务无状态化实现弹性扩容 关键技术点: 垂直扩展与水平扩展的对比 负载均衡算法及健康检查 缓存策略与缓存位置选择 容量估算方法及非功能指标 面试技巧:每个知识点附有结构化回答
2026-08-05 14:35:27
349
原创 消息队列八股不靠死背:跟着逆境扛过一次大促
消息队列实战:从大促故障看异步系统设计要点 摘要:本文通过电商大促场景,剖析消息队列四大核心问题——消息丢失、重复消费、顺序错乱和积压处理。首先分析消息队列的异步、解耦和削峰价值,同时指出其带来的复杂性代价。然后针对消息可靠性,提出生产-存储-消费三段保障方案:生产者重试补偿、Broker持久化、消费者后确认机制。对于重复消费问题,重点讲解唯一索引、去重表等幂等设计方法。文章强调,消息队列并非万能解药,需根据业务特点权衡利弊,在最终一致性和运维成本间取得平衡。最后指出,真实场景往往采用"至少一次投递+消费幂
2026-08-05 00:15:00
358
原创 操作系统八股不靠死背:跟着一个程序走完它的一生
本文从操作系统面试常见问题切入,通过一个程序从启动到退出的完整生命周期,系统性地讲解了进程管理、线程调度、系统调用等核心概念。文章采用"场景+面试回答"的形式,将抽象的理论具象化,帮助读者建立知识框架。主要内容包括: 进程与程序的区别、进程创建和状态转换 线程与进程的对比、上下文切换成本 用户态与内核态的隔离机制 CPU调度算法及其特点 系统调用与中断处理的原理 文章强调理解概念之间的关联性比死记硬背更重要,通过"先想画面后组织语言"的学习方法,帮助读者深入掌握操作系统的工作原理。每个知识点都配有简洁的面试
2026-08-04 02:30:00
313
原创 计算机网络八股不靠死背:跟着一个网页请求跑完全程
文章摘要 本文以一次完整的HTTP请求为例,串联网络分层、TCP连接、加密通信等35个常见面试问题。从浏览器输入URL到服务器响应的过程中,涉及DNS查询(UDP协议)、ARP寻址、路由器转发、TCP三次握手/四次挥手、TLS加密、HTTP请求等关键步骤。 核心知识点: 网络分层:OSI七层模型与TCP/IP四层模型的对应关系,各层功能(如IP寻址、TCP可靠传输)。 关键协议:DNS(UDP)、ARP(MAC寻址)、ICMP(ping/traceroute)、NAT(地址转换)。 TCP特性:三次握手(同
2026-08-03 00:30:00
429
原创 Redis 八股不靠硬背:跟着逆境守住一座缓存城
文章摘要 Redis是一个基于内存的高性能键值存储系统,支持多种数据结构、持久化、主从复制和集群部署。它常用于缓存、会话管理、计数器、排行榜、限流和分布式锁等场景。Redis的高性能源于内存存储、高效数据结构、I/O多路复用和单线程命令执行模型,但慢查询仍可能阻塞服务。其核心数据类型包括String、Hash、List、Set和ZSet,底层采用不同编码策略优化存储。Redis通过惰性删除和定期删除结合的方式管理键过期,并提供多种内存淘汰策略应对内存压力。理解Redis的架构设计和实现原理,有助于在实际应用
2026-08-02 01:00:00
374
原创 MySQL 八股不靠死背:跟着逆境经营一间线上书店
MySQL 索引与查询优化摘要 本文通过书店经营比喻,通俗讲解MySQL索引原理与查询优化: SQL执行流程:查询经历连接管理、解析、优化和执行阶段,Server层与存储引擎协同工作,8.0已移除查询缓存。 索引核心原理: InnoDB采用B+树索引,具有树矮、范围查询优、顺序访问快的特点 聚簇索引存储完整数据,二级索引需回表查询 联合索引遵循最左前缀原则,范围查询可能中断后续索引利用 优化实践: 覆盖索引避免回表 避免索引列计算、函数操作 注意数据分布对索引选择的影响 推荐使用EXPLAIN分析而非死记硬
2026-08-01 01:00:00
335
原创 【Leetcode 468】验证 IP 地址:判断 IPv4、IPv6 还是 Neither
这篇文章介绍了如何验证一个字符串是否符合IPv4或IPv6地址格式。主要内容包括: IPv4验证规则:必须包含4段0-255的数字,不允许前导零(除了单独的0),每段长度不超过3且不能为空或包含非数字字符。 IPv6验证规则:必须包含8段1-4个字符的十六进制数(0-9、a-f、A-F),允许前导零,不能有空段。 实现时关键点:使用split()分割字符串时需保留空字段(参数-1),IPv4地址中的点号需要转义("\.),区分大小写返回结果。 边界情况处理:空字段、前导零、非法字符、字段长度等都需
2026-07-31 21:18:10
495
原创 Spring AI 八股不靠死背:跟着逆境搭一遍公司 AI 助手
本文介绍了如何使用Spring AI框架开发企业内部的AI助手。文章通过主人公"逆境"的实践故事,讲解了Spring AI的核心概念和应用场景,包括: Spring AI的核心组件:ChatModel、ChatClient、EmbeddingModel、VectorStore等 RAG(检索增强生成)技术的应用场景 聊天记忆(ChatMemory)的实现 工具调用(Tool Calling)的整合 流式响应与拦截器的使用 文章采用"问题驱动"的方式,将技术概念融入实际开发场景,帮助读者理解Spring AI
2026-07-31 00:30:00
1072
原创 【Leetcode 470】用 Rand7() 实现 Rand10():等概率映射与拒绝采样
本文详细讲解了如何用rand7()实现等概率的rand10()。关键思路是通过两次rand7()生成49种等概率状态,保留1-40这40个能被10整除的状态进行映射((num-1)%10+1),多余状态采用拒绝采样或再利用。直接运算(如相加、相乘)会导致概率不均。优化方案通过复用被拒绝的状态,将平均调用次数从2.45次降至约2.19次。核心是构造足够多的等概率状态并平均分配,面试时可重点说明"唯一映射"和"平均分组"的原理。
2026-07-30 20:46:18
347
1
原创 Spring 八股不靠死背:跟着逆境接住一笔外卖订单
摘要:Spring框架的核心在于IoC(控制反转)和AOP(面向切面编程)。IoC通过容器管理Bean的创建与依赖注入(DI),而AOP通过代理实现事务、日志等横切逻辑。常见面试问题包括: IoC与DI:IoC将对象控制权交给容器,DI通过构造器/Setter注入依赖,推荐构造器注入以确保依赖明确。 Bean管理:Spring根据BeanDefinition创建Bean,ApplicationContext在基础BeanFactory上扩展了事件、国际化等功能。 依赖注入细节:@Autowired按类型匹配
2026-07-30 06:00:00
682
1
原创 JVM 八股不靠死背:跟着逆境参观 Java 城的地下机房
文章摘要: 本文以拟人化方式讲解JVM内存管理机制,将JVM比作"Java城的地下机房"。第一部分介绍JVM运行时内存区域划分:程序计数器、虚拟机栈等线程私有区域,以及堆、方法区等共享区域。第二部分重点解析对象创建过程,包括类加载检查、内存分配、对象头设置等关键步骤。文章采用生动的类比手法,如将栈帧比作"工作记录",对象头比作"入住登记表",使抽象概念更易理解。每个知识点后附有简明面试回答模板,帮助读者掌握核心要点。技术细节方面,涵盖了栈与堆的区别、方法区演进、逃逸分析优化等常见面试考点。
2026-07-29 05:00:00
336
原创 Java 并发八股不靠死背:跟着逆境值一次系统夜班
文章摘要:本文以Java并发编程为主题,通过主角逆境处理库存秒杀问题的场景,生动讲解了并发与并行的区别、线程状态、synchronized锁机制等核心概念。文章将并发问题类比为城市运作,用通俗易懂的案例揭示volatile、CAS等技术的适用场景与局限,并强调面试中理解概念本质比死记硬背更重要。全文包含6个典型问题解析,每个问题都配有场景化解释和标准面试回答模板,帮助读者真正掌握Java并发编程的关键要点。(149字)
2026-07-28 06:00:00
352
原创 Java JUC 综合实战:知识体系、接口聚合、延迟订单、源码与面试一次讲透
本文是一篇 JUC 综合实战文章。我们先把线程安全、JMM、CAS、AQS、并发容器、线程池和异步编排串成一张知识地图;然后实现商品详情并发聚合器与订单超时取消器两个小项目,并展示运行输出;接着阅读 `CompletableFuture`、`ThreadPoolExecutor`、`DelayQueue` 和 AQS 的关键源码;最后讲解线程池堆积、死锁、CPU 飙高、`ThreadLocal` 脏数据等线上问题的排查思路,并给出高频面试题及项目表达模板。
2026-07-27 05:00:00
335
2
原创 Java JUC 异步编排一次讲透:CompletableFuture、ForkJoinPool、工作窃取与源码实战
本文从商品详情接口聚合场景出发,系统讲解 `CompletableFuture` 的创建、串联、组合、异常处理、超时控制和线程池隔离,并通过关键源码说明它如何保存结果、注册回调和触发后续任务。随后讲解 `ForkJoinPool` 的分治模型、双端队列与工作窃取,最后给出生产实践、常见陷阱和高频面试题。
2026-07-27 01:00:00
225
原创 Java 集合八股不靠死背:跟着逆境逛一遍集合仓库
Java集合框架面试指南 摘要:本文以仓库为比喻系统讲解Java集合框架。List是货架,Set是去重闸机,Map是编号分拣中心。重点分析了ArrayList和LinkedList的区别:ArrayList基于动态数组,随机访问快(O(1))但扩容需要复制;LinkedList基于双向链表,插入删除快但随机访问慢(O(n))。详细探讨了ArrayList的扩容机制(1.5倍增长)、线程安全问题及解决方案(CopyOnWriteArrayList)。文章强调理解数据结构本质比死记硬背更重要,提供可直接用于面试
2026-07-26 11:37:12
338
原创 Java JUC 同步工具类一次讲透:CountDownLatch、CyclicBarrier、Semaphore、Phaser 与 AQS 共享模式
Java并发工具类对比与选型指南 本文系统讲解Java并发包中的四大同步工具类:CountDownLatch、CyclicBarrier、Semaphore和Phaser,帮助开发者应对实际开发中的并发协作需求。 核心要点: 工具类对比: CountDownLatch:等待多个任务完成(一次性) CyclicBarrier:多线程同步等待(可重用) Semaphore:限制并发访问数 Phaser:动态分阶段协作 典型应用场景: 商品详情多接口并行查询(CountDownLatch) 多人游戏准备就绪(Cy
2026-07-25 05:00:00
345
1
原创 别只会背七个参数:把 Java 线程池的执行逻辑和源码一次弄明白
文章摘要: 本文从实战角度解析Java线程池ThreadPoolExecutor的核心机制,避免死记硬背参数。首先指出直接new Thread的隐患(资源耗尽、缺乏管控),对比线程池的资源调度优势。随后梳理Executor体系分工,强调Executors工具类的潜在风险。重点拆解7个构造参数的实际意义(如corePoolSize并非初始线程数、队列类型决定扩容逻辑),并通过微型线程池演示任务排队/拒绝策略。最后提供线程命名、异常处理等实践建议,帮助开发者平衡性能与稳定性。全文结合配送站类比和源码片段,适合准
2026-07-25 01:00:00
233
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅