- 博客(1106)
- 资源 (1)
- 收藏
- 关注
原创 MyBatis 源码深度解析与实战:接口、抽象类、设计模式、算法、技巧与案例
MyBatis 以“SQL 为王”为理念,用少量核心接口与可插拔扩展机制搭建稳定执行管线。理解它的“接口边界 + 模式协作 + 关键算法”,即可高效定制与优化。发展沿革:iBATIS → MyBatis,强调 XML/注解映射与可插拔扩展。典型诉求:复杂 SQL 场景、性能敏感场景、方言与索引精细化控制。设计取舍:不隐藏 SQL,而是工程化组织与增强 SQL。以“接口边界 + 模式协作 + 关键算法 + 工程化技巧”为主线,MyBatis 构建了灵活可扩展的执行管线。
2026-02-19 00:00:00
362
原创 Spring MVC 源码全景解析:核心接口、设计模式与经典案例
Spring MVC 是企业 Java Web 的事实标准。掌握其源码不仅能优化问题定位、扩展框架能力,还能沉淀可复用的工程化经验(如统一异常处理、拦截器链、参数绑定与转换、内容协商等)。核心接口与抽象类请求处理主流程(含彩色 Mermaid 图)设计模式与工程技巧源码中的“算法意识”源码阅读路径与调试技巧经典案例与最佳实践速记口诀与检查清单参考资料与延伸阅读。
2026-02-18 00:00:00
581
原创 Spring Framework 源码分析全景:核心接口、抽象类、设计模式、算法、阅读技巧与经典案例
Mermaid 图:Bean 创建生命周期(柔和配色)Mermaid 图:AOP 代理选择(柔和配色)Mermaid 图:循环依赖解法(三级缓存)放入 singletonFactories。七、关键算法与机制(“为什么这样设计”)八、源代码阅读技巧(从工程到代码的梯度)六、设计模式技巧(源码中的模式与落地)五、核心接口与抽象类族谱(源码索引)十六、工程自检清单(上线前快速核对)十七、FAQ(快速定位与修复思路)十八、扩展参考与权威资料(补充)十二、总结速记口(便携记忆)三、名词解释(关键术语)
2026-02-17 00:00:00
670
原创 Spring Boot 源码分析全景:核心接口、抽象类、设计模式、算法、阅读技巧与经典案例
Mermaid 图:启动流程(配色柔和、中文节点避免疲劳)Mermaid 图:自动配置选择与条件评估(中文节点)Mermaid 图:启动事件总览(柔和配色)六、设计模式技巧(源码中的模式与落地)八、源代码阅读技巧(工程到代码的梯度)Profile/Property 决策。注册 BeanDefinition。五、核心接口与抽象类(源码索引)自定义监听/Actuator。十二、总结速记口(便携记忆)七、算法与机制(底层逻辑)十、相关权威资料与参考文献。三、名词解释(关键术语)九、经典案例(工程落地)
2026-02-16 00:00:00
630
原创 代码业务梳理-优化-迁移
注意:本文为通用模板,可直接替换“项目名称、关键入口清单、核心路径、外部依赖”等占位点,快速落地于任意企业内源项目。七、优化清单(结构 / 性能 / 规则与数据)三、方法总览(三板斧 + 六步闭环)二、目标与原则(聚焦“快速落地”)十三、速记口诀(便于记忆与复盘)附录 A|快速闭环图(柔和配色)一、使用说明(适配范围与产出)四、一天快跑模板(可复制执行)六、业务梳理五步法(通用)八、迁移路线图(最小风险)九、度量与门禁(建议阈值)五、一周治理节奏(样例)十、风险与对策(常见坑)十一、名词解释(速查)
2026-02-15 00:00:00
719
原创 Java 异常机制全解析:从原理到工程实践
异常是程序在运行过程中出现的“非期望状态”的结构化表达,它承载错误语义、传播路径与恢复策略。合理的异常机制能将“错误”从“业务主路径”中剥离,使代码更清晰、可诊断、可维护。在典型的 Spring/Spring Boot 电商后端中,服务层与网关层需要对接复杂外部系统与基础设施(数据库、缓存、RPC、文件 IO)。这些交互的失败必须被可靠捕获并转化为面向调用方的稳定契约(错误码/消息/HTTP 状态),避免把底层细节泄露到上层业务。将技术异常与业务异常分层,向上游暴露稳定的错误码与可读消息;
2026-02-15 00:00:00
660
原创 面向未来3–5年 IT 创业机会与风口全景指南
说明:为“Next.js + NestJS + vLLM + Qdrant + OpenTelemetry”原型绘制流程图,突出数据流与观测闭环。五、重点赛道可落地清单(项目 + 商业化 + 技术要点)二、简介与项目背景(从 0 到 1 的原型路径)OpenTelemetry/日志/追踪/指标。八、权威资料与参考文献(建议优先阅读与复用)三、核心名词解释(知其然,更知其所以然)九、速记口诀(面试/客户沟通可直接复述)四、技术版图总览(赛道与能力映射)十、总结与落地建议(行动清单)七、组合式机会(壁垒更强)
2026-02-14 00:15:00
1698
原创 TOGAF 企业架构定义文档(ADD)
六、需求目录与度量(Architecture Requirements Specification)图例:edge=蓝、app=绿、cache=黄、db=红、obs/ci=青/灰。技术层:CDN/WAF/LB/Nginx/Tomcat/HTTP2/3/TLS。十五、安全与合规架构(Security Architecture)四、架构原则(Architecture Principles)七、基线架构(Baseline Architecture)治理层:Prometheus/ELK/OTel/发布与回滚。
2026-02-14 00:00:00
929
原创 Spring Framework 源码分析全景:核心接口、抽象类、设计模式、算法、阅读技巧与经典案例
Mermaid 图:容器刷新主线(柔和配色与圆角)Mermaid 图:AOP 代理选择(柔和配色)Mermaid 图:循环依赖解法(三级缓存)放入 singletonFactories。七、关键算法与机制(“为什么这样设计”)八、源代码阅读技巧(从工程到代码的梯度)六、设计模式技巧(源码中的模式与落地)五、核心接口与抽象类族谱(源码索引)四、全局主线:容器启动与刷新流程。十二、总结速记口(便携记忆)十、相关权威资料与参考文献。三、名词解释(关键术语)九、经典案例(工程落地)AOP 代理选择与织入。
2026-02-13 17:15:21
547
原创 FreeMarker MVC 端到端架构与优化(网络-应用-数据库)
围绕 FreeMarker 的工程化落地,通常需要同时考虑:网络入口(CDN/WAF/LB/Nginx)、应用层(线程池/连接池/模板缓存/静态工具白名单/安全策略)、缓存与数据库(Redis/Caffeine、MySQL/PG、读写分离/分片、索引与事务),以及观测、压测、灰度和回滚等运维治理动作。本文围绕“整体网络 → 应用层(Spring MVC + FreeMarker)→ 缓存/数据库层”的端到端链路,对技术选型与优化策略进行系统化校正与扩展。合并模型数据(Model)与模板(.ftl)
2026-02-13 00:15:00
595
原创 Redisson 分布式锁自动续期:设计模式、源码原理与方案对比
在典型的“库存扣减、订单创建、跨系统一致性”场景中,事务时长受外部系统与网络影响难以精准预估。固定 TTL 要么过短导致锁提前失效,要么过长造成宕机后长期占用。Redisson 以“客户端主动续期”化解此两难:不要求你精准预估时长,仍能保障锁的时效与可靠释放。Redisson 看门狗以“主动式续期 + 原子校验 + 防御式设计”构建可靠的分布式锁方案:既提升工程可用性与扩展性,又在故障场景下保持确定性与自洽。相较手写守护线程与键空间通知,它在可靠性、性能与复杂度上具备显著优势,是生产环境分布式锁的首选实现。
2026-02-13 00:00:00
527
原创 Redisson 分布式锁“看门狗”自动续期源码解剖
3)看门狗启动核心:scheduleExpirationRenewal(long threadId)`scheduleExpirationRenewal(threadId)` 注册状态。`renewExpiration()` 创建 Netty TimerTask。4)周期续期核心:renewExpiration()`renewExpiration()`(递归下一轮)加锁入口 调用 `lock()`1)主流程图(Mermaid)2)时序图(Mermaid)1)入口触发:lock()到期回调 `run()`
2026-02-12 00:15:00
2061
原创 Redisson 看门狗:工作原理、流程图与生产实践全解析
核心目标:在未指定过期时间的情况下,确保持锁线程在业务未完成前锁不会过期;在进程异常时自动释放,避免死锁。关键要点:未显式指定过期时间时,默认设置锁过期时间为 30 秒(可配置)。通过事件循环定时任务(非专门线程)以“过期时间的 1/3”为间隔,周期性检查并续期。业务完成正常释放则取消定时任务;进程宕机则续期自然终止,锁按 TTL 到期自动删除。一句话记忆:不设时限有看护,三分之一抢先续,放手即停不拖泥。在高并发场景中,分布式锁常用于保护临界区、保证幂等与顺序一致性。
2026-02-12 00:00:00
703
原创 Redisson分布式锁的实现原理与加锁机制
Redisson 基于 Redis 提供了健壮的分布式锁实现,核心由原子化 Lua 脚本、可重入计数、看门狗自动续期、自旋重试、以及在集群环境下的路由与脚本缓存优化共同构成。本文在校正与扩展原有资料的基础上,系统性梳理其原理与工程实践,并附带配色优化的 Mermaid 图以提升可读性。Redisson 分布式锁以工程化手段解决了“原子性、持有者识别、长耗时续期、重入与释放安全”等关键问题。理解其在集群中的脚本缓存与路由细节、在边界场景下的容错策略,才能做到知其然并知其所以然,在真实生产环境中稳定发挥作用。
2026-02-11 00:15:00
1887
原创 Redisson分布式锁的实现原理与加锁机制(含可视化)
Redisson 基于 Redis 提供了健壮的分布式锁实现,核心由原子化 Lua 脚本、可重入计数、看门狗自动续期、自旋重试、以及在集群环境下的路由与脚本缓存优化共同构成。本文在校正与扩展原有资料的基础上,系统性梳理其原理与工程实践,并附带配色优化的 Mermaid 图以提升可读性。Redisson 分布式锁以工程化手段解决了“原子性、持有者识别、长耗时续期、重入与释放安全”等关键问题。理解其在集群中的脚本缓存与路由细节、在边界场景下的容错策略,才能做到知其然并知其所以然,在真实生产环境中稳定发挥作用。
2026-02-11 00:00:00
1601
原创 Redis分布式锁自动续期与Redisson看门狗机制深度解析
使用 Redis 分布式锁时,自动续期是保障并发安全的关键。Redisson 的看门狗机制通过“无参加锁自动续期,带参加锁固定租期”的清晰语义,帮助我们在不确定业务耗时的场景下保持锁的有效性;同时谨慎配置看门狗超时时间与 finally 显式解锁,是保障系统健壮性的最佳实践。将本文要点内化为“面试速记口”,能在短时间内清晰阐述“如何续期、为什么续期、何时禁用续期”,做到知其然更知其所以然。
2026-02-10 00:30:00
1044
原创 Java 原型模式与 clone 的关系、应用场景与底层原理,并谈 C++ 原型设计
在大型业务系统中,某些对象的构建代价很高:配置复杂、依赖外部资源、构造过程耗时或需要校验。这些对象在运行时需快速创建多个近似副本:通过原型复制,局部调整即可复用,显著降低延迟和内存抖动。原型模式是创建型设计模式之一,核心思想是通过现有对象的复制来创建新对象,避免昂贵的初始化。Java 中的对象克隆与原型模式天然相关:当类支持克隆时,它就可以充当“原型”;原型模式并非“银弹”,但在高性能、高并发、稳定性敏感的系统中能显著降低延迟与构造开销。合理设计拷贝语义与治理机制,是发挥原型模式价值的关键。
2026-02-10 00:00:00
592
原创 经典技术博客体裁:从 NewCustomerConfig 的克隆缺陷到统一复制策略
缺陷沉淀为可复用的工程经验:在并发场景下获得稳定、可预测的复制行为,显著降低“复制后突变”的调试成本,达成“知其然,更知其所以然”的目标。源对象 left/right 可为 null/空/非空。二、问题与现象(Given-When-Then)七、Mermaid 图表(修复流程与策略选择)拷贝构造/copyOf 语义清晰 类型安全。一、动机与业务背景(Why now)六、代码示例(通用化)与易错类型清单。十一、替代方案选择指南(何时选什么)三、术语与理论(Know why)十三、结论与价值(So what)
2026-02-09 23:45:00
891
原创 从一次 clone 坑到深拷贝基线:知其然,更知其所以然
通过统一复制基线与验证清单,我们把一次看似微小的“clone 坑”沉淀为可复用的工程经验:在并发场景下获得稳定、可预测的复制语义,显著降低“复制后突变”的调试成本,达成知其然,更知其所以然的目标。修复基线要求:只要原列表非 null,一律新建容器并逐元素复制,避免共享引用与不可变容器的修改异常。三、根因与理论(So that you understand why)源对象 left/right 可为 null/空/非空。附录A:易错集合类型与容器形态清单(通用化)七、Mermaid 流程图(修复后)
2026-02-09 23:30:00
591
原创 避免污染的渲染实践——从可变/不可变与深拷贝谈全局配置副作用防御
通过“结构层与内容层的同时隔离”,并以“元素级深拷贝 + 只读输入 + 副本变换”的工程化方法论为抓手,可从根上杜绝原始全局配置被污染的风险,确保跨请求、跨线程的一致性与可预期性。实践中请将“防御性拷贝”前移至流程入口,统一在副本上完成所有写操作,并以不可变快照发布与系统化校验机制兜底,从而实现“知其然更知其所以然”的可验证落地。围绕“是否会污染(把一次渲染中的写操作写回原始全局配置)”这一核心风险,本文建立系统性认知并给出工程化、可验证的解决方案。工程落地:可验证的“副作用防御”方案(不涉及任何业务码)
2026-01-30 23:45:00
556
原创 精通 C、C++、Java 语法与细节(硬核实操版):看完就能写、跑、解释
通过“最小模板 + 原理 + 命令 + 口决 + 图谱”的闭环,你可以在 C、C++、Java 三语间快速切换并稳定交付,做到知其然且知其所以然。Java 最小模板(泛型、流、线程池、try-with-resources)代码片段(Java try-with-resources)C 最小模板(读取、拼接、写文件、统一出口清理)C++ 最小模板(RAII、移动语义、并发)快速开始:最小可运行模板(拷贝即用)构建运行(G++/Clang++)构建运行(GCC/Clang)构建运行(JDK 17+)
2026-01-14 23:45:00
1220
原创 PostgreSQL 9.5:WAL 新格式与 wal_compression 源码级解析及9.5→18演进
WAL(Write-Ahead Logging)是 PostgreSQL 持久化与崩溃恢复的基石。新的 WAL 记录格式:提升 WAL 记录组织与可扩展性。WAL 压缩:为 Full Page Images(FPI,全页镜像)提供 PGLZ 压缩,降低 I/O 与存储占用。在高写入负载与大页镜像(FPI)场景中,WAL 数据量显著增大,影响归档与复制链路的吞吐与延迟。新的记录格式与压缩机制降低冗余,提高恢复读写效率与可维护性。
2026-01-13 00:15:00
1081
原创 PostgreSQL 9.5:IMPORT FOREIGN SCHEMA 与 FDW 增强源码级深度解析及9.5→18演进
FDW 是 PostgreSQL 的外部数据访问框架,为访问外部数据源(另一台 PostgreSQL、其它数据库或存储系统)提供统一接口。9.5 引入 IMPORT FOREIGN SCHEMA,旨在减少映射外部表的手工工作,可从远端数据源“一键”导入某个 schema 下的外表定义到本地,提升生产落地效率与一致性。
2026-01-13 00:15:00
1260
原创 PostgreSQL 9.5:SELECT … SKIP LOCKED(含 FOR UPDATE/SHARE)源码级深度解析与9.5→18演进
在任务队列/并行消费者等场景中,经典做法是“选出一批待处理行并加锁”,但在高并发下,行级锁冲突会导致阻塞、队头等待放大。SKIP LOCKED 允许在选取并加锁行时跳过已被其他事务锁住的行,避免阻塞并提升吞吐与整体时延稳定性。典型应用:多进程/多线程从同一表拉取“未处理任务”,使用块并发消费,已被其它消费者锁住的行会被跳过,避免互相等待。
2026-01-13 00:00:00
864
原创 PostgreSQL 9.5:BRIN 索引源码级深度解析与9.5→18演进
海量表在顺序写入或具有强相关性的列上(例如时间戳、ID 自增、地理位置编码等)存在“物理顺序与值分布近似单调”的特点。传统 B-Tree 在此场景的维护成本较高(索引体积、更新写放大),而 BRIN 通过“页范围摘要(min/max/等统计)”来近似过滤,索引极小且维护开销低,非常适合 TB 级表的粗粒度检索与预过滤。BRIN 的思想:不记录每行的键值位置,而是按若干页(page range)汇总该范围列值的摘要,查询时先以摘要判定哪些页“可能包含”匹配行,再让扫描器访问这些页做精确过滤。
2026-01-12 23:45:00
1236
原创 PostgreSQL 9.5:INSERT ON CONFLICT(UPSERT)源码级深度解析与9.5→18演进
在 9.5 之前,应用通常通过 SELECT/UPDATE/INSERT 组合或函数封装实现“存在则更新、不存在则插入”的逻辑,存在竞态窗口与复杂锁处理。9.5 原生支持 UPSERT,将唯一约束/索引冲突检测与冲突后的动作(DO NOTHING/DO UPDATE)纳入 INSERT 语句一次性完成,显著简化业务代码并提升一致性。该特性依赖唯一约束/索引作为仲裁对象(arbiter),并在执行器中实现冲突路径分支;语法层新增 ON CONFLICT 关键字与 EXCLUDED 伪表以引用待插入的行值。
2026-01-12 23:30:00
535
原创 PostgreSQL 9.5:Row Level Security(RLS)源码级深度解析与9.5→18演进
在多租户、隐私合规与精细化权限控制的业务场景中,传统的基于视图或触发器的行级过滤方案存在维护复杂、绕过风险与性能不稳定等问题。PostgreSQL 9.5 原生引入 RLS,通过“策略(POLICY)”对象表达行级访问规则,在查询重写阶段将策略条件自动注入,统一保障 SELECT/INSERT/UPDATE/DELETE 四类操作的行级控制,提升安全一致性与可维护性。
2026-01-12 23:30:00
684
原创 零基础电子与电路通俗指南
用生活化比喻+彩色图表+最小可行示例,解释你常听却听不懂的词:数字/模拟电路、元器件等效模型、通信协议、仿真(模拟器)、串口设置与线束工程。电子不是玄学,掌握“模型—规范—验证—记录”,配合彩色图表与最小可行实验,你就能从“看不懂”走到“能上手、会排错”,把复杂系统拆开来做稳做强。说明:从“元件→电路→接口→仿真→编程→线束→测试”的学习与调试路径。七、仿真(模拟器)原理与方法(SPICE/行为/混合)六、通信机制与原理(怎么连、哪易错)八、常用编程与测试设置(上手就能用)数据位(LSB...MSB)
2026-01-09 00:15:00
1687
原创 实验驱动电子学入门
你将用最常见的工具完成10个动手实验,亲眼看到按键抖动、跨时钟域同步、运放振荡、端接反射、采样抖动等现象,并学会标准化记录与排错。当实验、规范、记录形成闭环,复杂系统就不再神秘。十一、仪器设置速查表(示波器/信号发生器/逻辑分析仪/稳压电源)说明:三个图——实验流程、接口映射、RS-485接线要点。十六、Mermaid:实验操作与观察流程(配色优化)五、十个动手实验(步骤/现象/结论/加分项)十二、操作步骤总模板(每个实验统一使用)三、实验工具与采购建议(预算分档)十五、实验记录模板(复制使用)
2026-01-09 00:15:00
1602
原创 电子与电路全景实战指南
概述:本文以系统工程视角梳理电子学与电路设计的关键要素,覆盖数字/模拟电路、核心元器件物理与等效模型、典型通信机制与协议、仿真(模拟器)原理与方法、常用编程与测试设置、以及线束工程差异与规范,配套优化配色的 Mermaid 图与工程清单,帮助形成“知其然并知其所以然”的系统认知。R/C/L/二极管/BJT/MOS/运放。SI/EMC/安规/FMEA/DFX。门/触发器/PLL/时序/同步。屏蔽/阻抗/端接/接地/连接器。MCU外设/驱动/日志/校准。放大/滤波/基准/补偿。仲裁/ACK/NACK。
2026-01-09 00:00:00
843
原创 工业电瓶-充电器系统架构全指南
概述:本文围绕“小型电瓶到充电器”的完整工业控制系统,系统性梳理模块与控制单元构成、PLC/单片机与上位机的串口编程关系、通信与接线方案、故障排查与功能扩展方法,并提供可视化图表与权威参考,帮助读者形成“知其然更知其所以然”的系统认知。遵循本文的架构与规范,可显著提升“电瓶—充电器—控制层—上位机”系统的可靠性、可维护性与可扩展性。十三、设备与控制单元选型建议(PLC/MCU 品牌型号)十四、上位机串口编程示例(Python/C/Java)十六、充电状态机(Mermaid,配色与样式优化)
2026-01-08 23:45:00
1150
原创 Java equals 最全指南:为什么 “1“.equals(new Integer(1)) 为 false
背景痛点:误把 ==当作值相等。混用 equals()与 compareTo()。不理解“同类型等价”,期待跨类型相等。目标:掌握方法分派与等价契约。理解常见类实现差异与原理。正确选择集合与比较策略。理解方法分派、类型检查与契约关系,才能在工程实践中写出正确、稳定且高性能的判等逻辑。String 与 Integer 分属不同等价类,故 equals 必然为 false。遵循本文最佳实践与速记口,可显著降低缺陷与维护成本。
2026-01-08 23:30:00
1073
原创 Java 强/软/弱/虚引用经典应用案例与框架深度解析
Java 垃圾回收(GC)与对象可达性(Reachability)之间存在一套成熟的语义约束。强引用:对象“牢固存活”,直到没有任何强引用指向它;软引用:在内存紧张时优先被回收,常用于低风险缓存;类见 java.lang.ref.SoftReference<T>;弱引用:只要下一次 GC,就会被回收(若无强引用),常用于“非所有权”关系与弱映射;类见 java.lang.ref.WeakReference<T>;虚引用:对象不可经此引用访问,主要用于“回收通知/资源清理编排”;
2025-12-31 00:00:00
1642
原创 Java 引用(强/软/弱/虚)深度解析:底层原理与源码行级解读(增强版)
多种引用的动机:在受控内存压力下优雅降级、优化缓存策略、协调资源生命周期与清理。与 GC 的协同:从强可达向软/弱/虚逐级降级,最终通过队列交由应用线程完成清理编排。实践定位:软引用偏“内存敏感缓存的退路”,弱引用用于“条目不阻止回收”,虚引用专注“对象不可用后的清理事件编排”。多引用模型源自对“可达性语义”的工程抽象:以 Reference 家族提供“对象可达性与回收时机”的可控协作接口,兼容不同 GC(Serial、Parallel、G1、ZGC、Shenandoah 等)。
2025-12-30 00:15:00
1252
原创 Java 对象拷贝:方式、差异与最佳实践
Java 对象拷贝是日常开发中极高频的操作:DTO 转换、领域对象防御性复制、快照与审计、缓存数据脱敏、并发下的不可变对象传递等。代码健壮性(避免意外共享与“浅拷贝坑”)性能与内存占用(避免不必要的深度复制)可维护性与类型安全(显式模型转换优先)本文围绕“对象拷贝的方式与差异性”,提供体系化认知与可视化决策图,帮助你知其然,更知其所以然。修改 A 层的对象数据,意外影响 B 层(隐式共享)DTO 转换缺字段/多字段,导致数据错位序列化深拷贝带来性能损耗与循环引用问题。
2025-12-30 00:00:00
1867
原创 Java 对象拷贝:方式、差异与最佳实践
Java 对象拷贝是日常开发中极高频的操作:DTO 转换、领域对象防御性复制、快照与审计、缓存数据脱敏、并发下的不可变对象传递等。代码健壮性(避免意外共享与“浅拷贝坑”)性能与内存占用(避免不必要的深度复制)可维护性与类型安全(显式模型转换优先)本文围绕“对象拷贝的方式与差异性”,提供体系化认知与可视化决策图,帮助你知其然,更知其所以然。修改 A 层的对象数据,意外影响 B 层(隐式共享)DTO 转换缺字段/多字段,导致数据错位序列化深拷贝带来性能损耗与循环引用问题。
2025-12-29 23:30:00
1405
原创 Java 引用(强/软/弱/虚)深度解析:底层原理与源码行级解读
为什么需要多种引用:在受控内存压力下优雅降级、缓存设计、资源生命周期协调。四类引用与 GC 的协同:从“强可达”向“软/弱/虚可达”逐步降级,最终交由队列与清理器处理。实践要点:软引用用于内存敏感缓存,弱引用适合映射条目不阻止回收,虚引用用于对象“已回收后”的钩子与资源清理编排。多引用模型源于 Java 对 GC 语义的抽象:通过ReferenceAPI提供“对象可达性”和“回收时机”的可控协作机制,兼容不同 GC 实现(Serial、Parallel、G1、ZGC、Shenandoah 等)。
2025-12-29 23:00:00
1948
原创 C/C++中的信号与槽:原理、关系与通讯实现
在桌面与嵌入式图形界面、通信中间件、插件系统、数据流处理等场景里,事件驱动是主流架构之一。信号与槽作为事件驱动体系中的关键角色,旨在在模块间建立低耦合的通讯桥梁,提升可维护性与扩展性。站在工程视角,信号与槽既是“接口契约”,也是“调用调度”:它在不同库中以不同手段实现(编译期元信息生成、运行时调度、模板与函数封装),但目标一致——可靠、可控、可观察的事件传播。
2025-12-25 23:15:00
733
原创 C/C++中的信号与槽:原理、实现、优化与高阶应用
信号与槽是事件驱动架构的核心构件,提供解耦、可组合、可观测的调用机制。在 C 场景,函数指针 + 事件循环即可实现;在 C++ 场景,建议用 std::function/Boost/Qt 等成熟抽象。关键工程点:连接管理、生命周期、线程模型、队列与背压、观测与告警。高阶方向:无锁结构、组合器、协程与分布式事件总线的融合。知其然:掌握使用与接口;知其所以然:理解底层调度、内存模型与并发安全。建议结合自身项目的线程模型与资源边界进行落地实践,并用上述图示统一团队对事件流的认知,持续迭代调优。
2025-12-25 18:30:00
7736
原创 pgconf_asia_2017_logical_replication_us_20171204-1
【代码】pgconf_asia_2017_logical_replication_us_20171204-1。
2025-12-18 17:07:26
791
使用 Hosts File Editor 插件修改 Windows `hosts` 文件并刷新 DNS 缓存
2024-07-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅