<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>zoloy&apos;s blog</title><description>后端技术笔记</description><link>https://blog.zoloy.top/</link><item><title>TLAB——线程本地分配缓冲如何让对象分配几乎无锁</title><link>https://blog.zoloy.top/posts/tlab-%E7%BA%BF%E7%A8%8B%E6%9C%AC%E5%9C%B0%E5%88%86%E9%85%8D%E7%BC%93%E5%86%B2/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/tlab-%E7%BA%BF%E7%A8%8B%E6%9C%AC%E5%9C%B0%E5%88%86%E9%85%8D%E7%BC%93%E5%86%B2/</guid><description>JVM 在 Eden 区为每个线程预分配私有内存块 TLAB，让对象分配几乎无锁，解决多线程并发 new 的性能瓶颈。</description><pubDate>Sun, 15 Mar 2026 09:00:00 GMT</pubDate></item><item><title>MySQL插入意向锁——间隙锁的并发优化变体</title><link>https://blog.zoloy.top/posts/mysql-%E6%8F%92%E5%85%A5%E6%84%8F%E5%90%91%E9%94%81/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql-%E6%8F%92%E5%85%A5%E6%84%8F%E5%90%91%E9%94%81/</guid><description>插入意向锁是间隙锁的并发优化变体，同间隙不同位置互相兼容，仅被真正间隙锁阻塞，兼顾 RR 防幻读语义与并发插入吞吐</description><pubDate>Thu, 12 Mar 2026 09:00:00 GMT</pubDate></item><item><title>ZGC——着色指针与读屏障实现亚毫秒级停顿</title><link>https://blog.zoloy.top/posts/zgc%E7%9D%80%E8%89%B2%E6%8C%87%E9%92%88%E4%B8%8E%E8%AF%BB%E5%B1%8F%E9%9A%9C/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/zgc%E7%9D%80%E8%89%B2%E6%8C%87%E9%92%88%E4%B8%8E%E8%AF%BB%E5%B1%8F%E9%9A%9C/</guid><description>ZGC 通过着色指针将 GC 元数据编码到指针中，结合读屏障实现亚毫秒级停顿，且停顿时间不随堆大小增长。</description><pubDate>Tue, 10 Mar 2026 09:00:00 GMT</pubDate></item><item><title>Redis Cluster Gossip协议——去中心化的元数据传播</title><link>https://blog.zoloy.top/posts/redis-cluster-gossip%E5%8D%8F%E8%AE%AE/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redis-cluster-gossip%E5%8D%8F%E8%AE%AE/</guid><description>深入解析 Redis Cluster 基于 Gossip 的去中心化节点发现与故障检测机制，涵盖 PING/PONG 交换、PFAIL/FAIL 两级判定与 16384 槽位设计。</description><pubDate>Sat, 07 Mar 2026 09:00:00 GMT</pubDate></item><item><title>RocketMQ DLedger——基于Raft的CommitLog多数派提交</title><link>https://blog.zoloy.top/posts/rocketmq-dledger-raft/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq-dledger-raft/</guid><description>解析 RocketMQ DLedger 如何将 Raft 共识协议嵌入 CommitLog 写入路径，以多数派提交替代异步复制实现自动故障切换，以及为什么 ConsumeQueue 不参与 Raft 同步。</description><pubDate>Thu, 05 Mar 2026 09:00:00 GMT</pubDate></item><item><title>双亲委派机制——为什么你不能自定义java.lang.String</title><link>https://blog.zoloy.top/posts/%E5%8F%8C%E4%BA%B2%E5%A7%94%E6%B4%BE%E6%9C%BA%E5%88%B6/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%8F%8C%E4%BA%B2%E5%A7%94%E6%B4%BE%E6%9C%BA%E5%88%B6/</guid><description>双亲委派机制自底向上检查、自顶向下加载，保证核心类不被篡改，是 Java 类加载安全的基石。</description><pubDate>Mon, 02 Mar 2026 09:00:00 GMT</pubDate></item><item><title>中断机制详解：从硬件信号到内核处理的全链路</title><link>https://blog.zoloy.top/posts/%E4%B8%AD%E6%96%AD%E6%9C%BA%E5%88%B6%E8%AF%A6%E8%A7%A3/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E4%B8%AD%E6%96%AD%E6%9C%BA%E5%88%B6%E8%AF%A6%E8%A7%A3/</guid><description>从硬件信号到内核处理的全链路：中断控制器、IDT、保存现场、中断处理函数、恢复返回，完整覆盖中断处理流程。</description><pubDate>Sat, 28 Feb 2026 09:00:00 GMT</pubDate></item><item><title>TCP为什么可靠传输：六大机制协同保障数据完整性</title><link>https://blog.zoloy.top/posts/tcp%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8F%AF%E9%9D%A0%E4%BC%A0%E8%BE%93/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/tcp%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8F%AF%E9%9D%A0%E4%BC%A0%E8%BE%93/</guid><description>TCP 通过校验和、确认应答、重传、序列号、流量控制和拥塞控制六大机制协同保障数据无差错、不丢失、不重复、按序到达。</description><pubDate>Wed, 25 Feb 2026 09:00:00 GMT</pubDate></item><item><title>Copy on Write原理：fork背后的内存优化魔法</title><link>https://blog.zoloy.top/posts/copy-on-write%E5%8E%9F%E7%90%86/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/copy-on-write%E5%8E%9F%E7%90%86/</guid><description>fork 时只复制页表不复制物理页，通过清除写权限位让写操作触发缺页中断才真正复制，将全量拷贝转化为按需增量复制。</description><pubDate>Mon, 23 Feb 2026 09:00:00 GMT</pubDate></item><item><title>缓存预热策略——启动时就把热数据装进Redis</title><link>https://blog.zoloy.top/posts/%E7%BC%93%E5%AD%98%E9%A2%84%E7%83%AD%E7%AD%96%E7%95%A5/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E7%BC%93%E5%AD%98%E9%A2%84%E7%83%AD%E7%AD%96%E7%95%A5/</guid><description>服务启动时通过 ContextRefreshedEvent 加 Pipeline 批量写入预热缓存，用分布式锁和就绪探针保障冷启动安全。</description><pubDate>Fri, 20 Feb 2026 09:00:00 GMT</pubDate></item><item><title>异步化改造邮件发送——从同步阻塞2秒到异步立即返回</title><link>https://blog.zoloy.top/posts/%E5%BC%82%E6%AD%A5%E5%8C%96%E6%94%B9%E9%80%A0%E9%82%AE%E4%BB%B6%E5%8F%91%E9%80%81/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%BC%82%E6%AD%A5%E5%8C%96%E6%94%B9%E9%80%A0%E9%82%AE%E4%BB%B6%E5%8F%91%E9%80%81/</guid><description>将邮件发送从主线程剥离为异步执行，配合线程池配置与持久化保障，实现用户体验从 2 秒到 50ms 的飞跃。</description><pubDate>Wed, 18 Feb 2026 09:00:00 GMT</pubDate></item><item><title>圈复杂度——McCabe公式与重构的数学依据</title><link>https://blog.zoloy.top/posts/%E5%9C%88%E5%A4%8D%E6%9D%82%E5%BA%A6-mccabe%E5%85%AC%E5%BC%8F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%9C%88%E5%A4%8D%E6%9D%82%E5%BA%A6-mccabe%E5%85%AC%E5%BC%8F/</guid><description>圈复杂度用 McCabe 公式（V=E-N+2P）量化代码的独立路径数，为重构提供数学依据，指导函数拆分与测试用例设计。</description><pubDate>Sun, 15 Feb 2026 09:00:00 GMT</pubDate></item><item><title>乐观锁与悲观锁——读多写少与写多的两种世界观</title><link>https://blog.zoloy.top/posts/%E4%B9%90%E8%A7%82%E9%94%81%E4%B8%8E%E6%82%B2%E8%A7%82%E9%94%81/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E4%B9%90%E8%A7%82%E9%94%81%E4%B8%8E%E6%82%B2%E8%A7%82%E9%94%81/</guid><description>乐观锁用 CAS/版本号以无锁方式应对低冲突场景，悲观锁用数据库行锁保证强一致性，理解两种世界观的选择依据。</description><pubDate>Fri, 13 Feb 2026 09:00:00 GMT</pubDate></item><item><title>Segmented分段锁——从单锁串行到10倍并发的演进</title><link>https://blog.zoloy.top/posts/segmented%E5%88%86%E6%AE%B5%E9%94%81%E4%BC%98%E5%8C%96/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/segmented%E5%88%86%E6%AE%B5%E9%94%81%E4%BC%98%E5%8C%96/</guid><description>从秒杀库存扣减到 10 倍并发提升——分段锁将全局资源按 userId 分片，不同分段的操作完全并行，配合段间迁移补偿与死锁防护，思想在 ConcurrentHashMap、LongAdder 中均可见。</description><pubDate>Tue, 10 Feb 2026 09:00:00 GMT</pubDate></item><item><title>RestTemplate连接池优化——每次new都要三次握手？</title><link>https://blog.zoloy.top/posts/resttemplate%E8%BF%9E%E6%8E%A5%E6%B1%A0%E4%BC%98%E5%8C%96/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/resttemplate%E8%BF%9E%E6%8E%A5%E6%B1%A0%E4%BC%98%E5%8C%96/</guid><description>揭示 RestTemplate 默认构造器的性能黑洞——每次 HTTP 请求新建 TCP 连接，详解 HttpComponentsClientHttpRequestFactory 连接池化的完整生产级配置。</description><pubDate>Sun, 08 Feb 2026 09:00:00 GMT</pubDate></item><item><title>Nginx vs Tomcat——为什么有了Nginx还要用Tomcat？</title><link>https://blog.zoloy.top/posts/nginx-vs-tomcat/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/nginx-vs-tomcat/</guid><description>Nginx(C 语言反向代理零拷贝静态资源)与 Tomcat(Java Servlet 容器业务引擎)分工明确，黄金组合各司其职不可互相替代</description><pubDate>Fri, 06 Feb 2026 09:00:00 GMT</pubDate></item><item><title>Java AIO与io_uring——为什么AIO在Linux上是&quot;伪异步&quot;？</title><link>https://blog.zoloy.top/posts/java-aio-io_uring-%E7%9C%9F%E6%AD%A3%E5%BC%82%E6%AD%A5io/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/java-aio-io_uring-%E7%9C%9F%E6%AD%A3%E5%BC%82%E6%AD%A5io/</guid><description>同步非阻塞与异步根本区别在谁负责读数据到用户缓冲区，Java AIO 在 Linux 底层用 epoll 模拟，io_uring 通过共享环形队列实现真正内核异步 IO。</description><pubDate>Tue, 03 Feb 2026 09:00:00 GMT</pubDate></item><item><title>JMeter压测方法论——从QPS概念到渐进式性能优化</title><link>https://blog.zoloy.top/posts/jmeter%E5%8E%8B%E6%B5%8B%E6%96%B9%E6%B3%95%E8%AF%A6%E8%A7%A3/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/jmeter%E5%8E%8B%E6%B5%8B%E6%96%B9%E6%B3%95%E8%AF%A6%E8%A7%A3/</guid><description>QPS 是 HTTP 层请求数 TPS 是业务事务数二者不可混用，看 P99 而非 Average 才能发现长尾延迟，渐进式加压找到拐点比最高 QPS 更有意义。</description><pubDate>Sun, 01 Feb 2026 09:00:00 GMT</pubDate></item><item><title>JDBC批量插入——从1000次网络IO到1次</title><link>https://blog.zoloy.top/posts/jdbc%E6%89%B9%E9%87%8F%E6%8F%92%E5%85%A5%E4%BC%98%E5%8C%96/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/jdbc%E6%89%B9%E9%87%8F%E6%8F%92%E5%85%A5%E4%BC%98%E5%8C%96/</guid><description>JDBC 批量插入核心优化链：executeBatch 减少网络往返 30 倍，加 rewriteBatchedStatements=true 合并 SQL 解析再提速至 100 倍。</description><pubDate>Thu, 29 Jan 2026 09:00:00 GMT</pubDate></item><item><title>HikariCP连接池优化——从参数配置到底层原理</title><link>https://blog.zoloy.top/posts/hikari%E8%BF%9E%E6%8E%A5%E6%B1%A0%E4%BC%98%E5%8C%96%E8%AF%A6%E8%A7%A3/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/hikari%E8%BF%9E%E6%8E%A5%E6%B1%A0%E4%BC%98%E5%8C%96%E8%AF%A6%E8%A7%A3/</guid><description>HikariCP 以无锁 ConcurrentBag 加速连接借还，maximum-pool-size 遵循 CPU 核数×2+磁盘数公式，max-lifetime 须小于数据库 wait_timeout。</description><pubDate>Tue, 27 Jan 2026 09:00:00 GMT</pubDate></item><item><title>Consul服务注册与发现——告别手动Nginx配置</title><link>https://blog.zoloy.top/posts/consul%E6%9C%8D%E5%8A%A1%E6%B3%A8%E5%86%8C%E4%B8%8E%E5%8F%91%E7%8E%B0/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/consul%E6%9C%8D%E5%8A%A1%E6%B3%A8%E5%86%8C%E4%B8%8E%E5%8F%91%E7%8E%B0/</guid><description>Consul 通过服务注册、Agent 健康检查自动摘除故障节点、consul-template 动态渲染 Nginx 配置，实现微服务无感扩缩容。</description><pubDate>Sat, 24 Jan 2026 09:00:00 GMT</pubDate></item><item><title>面试回答策略——信息密度与&quot;先结论后细节</title><link>https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E4%BF%A1%E6%81%AF%E5%AF%86%E5%BA%A6-%E5%9B%9E%E7%AD%94%E7%AD%96%E7%95%A5/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E4%BF%A1%E6%81%AF%E5%AF%86%E5%BA%A6-%E5%9B%9E%E7%AD%94%E7%AD%96%E7%95%A5/</guid><description>面试回答采用先结论后细节的策略，将 80%的细节留给面试官追问，用钩子引导对话进入自己准备的领域。</description><pubDate>Thu, 22 Jan 2026 09:00:00 GMT</pubDate></item><item><title>算法面试的心智模型——从暴力到最优的渐进优化</title><link>https://blog.zoloy.top/posts/%E7%AE%97%E6%B3%95%E9%9D%A2%E8%AF%95%E5%BF%83%E6%99%BA%E6%A8%A1%E5%9E%8B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E7%AE%97%E6%B3%95%E9%9D%A2%E8%AF%95%E5%BF%83%E6%99%BA%E6%A8%A1%E5%9E%8B/</guid><description>算法面试三步法：先说暴力解展现理解，再分析瓶颈定位方向，最后优化到最优并分析复杂度。</description><pubDate>Mon, 19 Jan 2026 09:00:00 GMT</pubDate></item><item><title>自我介绍——60秒内让面试官选择聊你准备最充分的话题</title><link>https://blog.zoloy.top/posts/%E7%AE%80%E5%8E%86%E8%87%AA%E6%88%91%E4%BB%8B%E7%BB%8D%E6%A8%A1%E6%9D%BF/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E7%AE%80%E5%8E%86%E8%87%AA%E6%88%91%E4%BB%8B%E7%BB%8D%E6%A8%A1%E6%9D%BF/</guid><description>四段式 60 秒自我介绍：背景、技术栈钩子、项目亮点、主动邀请，把选择权给面试官，准备权留给自己。</description><pubDate>Sat, 17 Jan 2026 09:00:00 GMT</pubDate></item><item><title>简历优化——技术简历的STAR化与量化改造</title><link>https://blog.zoloy.top/posts/%E7%AE%80%E5%8E%86%E4%BC%98%E5%8C%96-star%E5%8E%9F%E5%88%99/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E7%AE%80%E5%8E%86%E4%BC%98%E5%8C%96-star%E5%8E%9F%E5%88%99/</guid><description>将简历从功能列表改造为 STAR 化问题清单，用数据和路径展示决策深度，而非堆砌形容词。</description><pubDate>Wed, 14 Jan 2026 09:00:00 GMT</pubDate></item><item><title>渐进式优化方法论——从虚拟线程优化看工程决策路径</title><link>https://blog.zoloy.top/posts/%E6%B8%90%E8%BF%9B%E5%BC%8F%E4%BC%98%E5%8C%96%E6%96%B9%E6%B3%95%E8%AE%BA/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E6%B8%90%E8%BF%9B%E5%BC%8F%E4%BC%98%E5%8C%96%E6%96%B9%E6%B3%95%E8%AE%BA/</guid><description>渐进式优化的四步法：拿基线数据、调参移瓶颈、架构重构、技术跃迁，每步用数据回答瓶颈在哪。</description><pubDate>Mon, 12 Jan 2026 09:00:00 GMT</pubDate></item><item><title>八股与项目的模板化回答——从本质到钩子的四段式结构</title><link>https://blog.zoloy.top/posts/%E5%85%AB%E8%82%A1-%E9%A1%B9%E7%9B%AE%E6%A8%A1%E6%9D%BF%E5%8C%96%E5%9B%9E%E7%AD%94%E7%BB%93%E6%9E%84/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%85%AB%E8%82%A1-%E9%A1%B9%E7%9B%AE%E6%A8%A1%E6%9D%BF%E5%8C%96%E5%9B%9E%E7%AD%94%E7%BB%93%E6%9E%84/</guid><description>八股四段式（本质→效果→核心细节→面试钩子）将技术概念讲得有深度，项目三段式让简历产出可量化、有影响力。</description><pubDate>Fri, 09 Jan 2026 09:00:00 GMT</pubDate></item><item><title>STAR法则——把项目经历讲成故事的完整模板</title><link>https://blog.zoloy.top/posts/star%E6%B3%95%E5%88%99%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94%E6%A8%A1%E6%9D%BF/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/star%E6%B3%95%E5%88%99%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94%E6%A8%A1%E6%9D%BF/</guid><description>用 STAR 法则将技术优化路径讲成故事——侧重展示决策过程而非最终方案，用数据化对比强化结果，并留钩子主动引导面试官进入你准备最充分的领域。</description><pubDate>Wed, 07 Jan 2026 09:00:00 GMT</pubDate></item><item><title>Java后端学习路线——从语言基础到分布式系统</title><link>https://blog.zoloy.top/posts/java%E5%90%8E%E7%AB%AF%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/java%E5%90%8E%E7%AB%AF%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/</guid><description>从语言基础到框架中间件再到系统设计三阶段学习路线，每学一个中间件回答解决什么问题、代价是什么、原理是什么三个问题。</description><pubDate>Sun, 04 Jan 2026 09:00:00 GMT</pubDate></item><item><title>HR面试完全手册——价值观、稳定性、潜力三个维度</title><link>https://blog.zoloy.top/posts/hr%E9%9D%A2%E5%AE%8C%E5%85%A8%E6%89%8B%E5%86%8C/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/hr%E9%9D%A2%E5%AE%8C%E5%85%A8%E6%89%8B%E5%86%8C/</guid><description>HR 面考察价值观匹配、稳定性与潜力三维度，核心策略是按公司文化放大真实特质，T 字型规划展现扎根深耕与长期价值。</description><pubDate>Fri, 02 Jan 2026 09:00:00 GMT</pubDate></item><item><title>雪花算法——分布式全局唯一ID的64bit设计</title><link>https://blog.zoloy.top/posts/%E9%9B%AA%E8%8A%B1%E7%AE%97%E6%B3%95-%E5%88%86%E5%B8%83%E5%BC%8Fid/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%9B%AA%E8%8A%B1%E7%AE%97%E6%B3%95-%E5%88%86%E5%B8%83%E5%BC%8Fid/</guid><description>雪花算法用 41bit 时间戳保证趋势递增避免 B+树页分裂，时钟回拨通过等待、拒绝或扩展序列号三种策略应对。</description><pubDate>Wed, 31 Dec 2025 09:00:00 GMT</pubDate></item><item><title>秒杀系统设计——从超卖到分段锁的完整演进</title><link>https://blog.zoloy.top/posts/%E7%A7%92%E6%9D%80%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E7%A7%92%E6%9D%80%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/</guid><description>从数据库行锁到 Redis 分布式锁再到分段锁的四层演进，将秒杀 QPS 从超卖提升至 50000。</description><pubDate>Sun, 28 Dec 2025 09:00:00 GMT</pubDate></item><item><title>海量数据处理——从哈希分桶到位图的通用解题框架</title><link>https://blog.zoloy.top/posts/%E6%B5%B7%E9%87%8F%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86%E9%80%9A%E7%94%A8%E6%A1%86%E6%9E%B6/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E6%B5%B7%E9%87%8F%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86%E9%80%9A%E7%94%A8%E6%A1%86%E6%9E%B6/</guid><description>以哈希分桶分治为核心，结合位图法去重、小顶堆求 TopK、多路归并排序，构成海量数据处理的完整工具箱。</description><pubDate>Fri, 26 Dec 2025 09:00:00 GMT</pubDate></item><item><title>大规模登录系统——从Session到JWT到OAuth2</title><link>https://blog.zoloy.top/posts/%E5%A4%A7%E8%A7%84%E6%A8%A1%E7%99%BB%E5%BD%95%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%A4%A7%E8%A7%84%E6%A8%A1%E7%99%BB%E5%BD%95%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1/</guid><description>从单体 Session 到 JWT 到 OAuth2 的登录系统演进：分布式 Session 共享、JWT 无状态认证、OAuth2 第三方授权，逐级解决规模问题。</description><pubDate>Tue, 23 Dec 2025 09:00:00 GMT</pubDate></item><item><title>分布式事务——从2PC到Seata AT的选型全景</title><link>https://blog.zoloy.top/posts/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1%E9%80%89%E5%9E%8B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%88%86%E5%B8%83%E5%BC%8F%E4%BA%8B%E5%8A%A1%E9%80%89%E5%9E%8B/</guid><description>从 2PC 到 Seata AT 的分布式事务全景选型：强一致的协调者模型与最终一致的业务补偿模型的权衡与适用场景。</description><pubDate>Sun, 21 Dec 2025 09:00:00 GMT</pubDate></item><item><title>不停机数据迁移——PostgreSQL到Redis ZSet的双写灰度三阶段</title><link>https://blog.zoloy.top/posts/%E4%B8%8D%E5%81%9C%E6%9C%BA%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB-%E5%8F%8C%E5%86%99%E7%81%B0%E5%BA%A6%E4%B8%89%E9%98%B6%E6%AE%B5/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E4%B8%8D%E5%81%9C%E6%9C%BA%E6%95%B0%E6%8D%AE%E8%BF%81%E7%A7%BB-%E5%8F%8C%E5%86%99%E7%81%B0%E5%BA%A6%E4%B8%89%E9%98%B6%E6%AE%B5/</guid><description>从 PostgreSQL 到 Redis ZSet 的不停机迁移实战：双写→灰度切读→全量切换三阶段，对用户零感知的线上数据迁移方案。</description><pubDate>Thu, 18 Dec 2025 09:00:00 GMT</pubDate></item><item><title>Netty的Reactor模式——从单线程到主从多线程</title><link>https://blog.zoloy.top/posts/netty-reactor%E6%A8%A1%E5%BC%8F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/netty-reactor%E6%A8%A1%E5%BC%8F/</guid><description>Netty 主从 Reactor 三层解耦：BossGroup 处理 accept、WorkerGroup 处理 IO 读写 epoll、业务线程池执行耗时逻辑，默认 ET 模式</description><pubDate>Tue, 16 Dec 2025 09:00:00 GMT</pubDate></item><item><title>LSM树——写多读少场景下的存储引擎王者</title><link>https://blog.zoloy.top/posts/lsm%E6%A0%91%E5%8E%9F%E7%90%86-memtable-sstable/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/lsm%E6%A0%91%E5%8E%9F%E7%90%86-memtable-sstable/</guid><description>LSM 树将随机写转为顺序写，通过 MemTable 内存排序+SSTable 分层+后台 Compaction，以读放大换写入高吞吐</description><pubDate>Sat, 13 Dec 2025 09:00:00 GMT</pubDate></item><item><title>CAP定理、BASE理论与Raft共识算法——分布式理论的基石</title><link>https://blog.zoloy.top/posts/cap-base-raft-%E5%88%86%E5%B8%83%E5%BC%8F%E7%90%86%E8%AE%BA/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/cap-base-raft-%E5%88%86%E5%B8%83%E5%BC%8F%E7%90%86%E8%AE%BA/</guid><description>CAP 定义分布式理论边界，BASE 落地为最终一致性工程折中，Raft 通过 Leader 选举与多数派日志复制实现可理解的共识算法。</description><pubDate>Thu, 11 Dec 2025 09:00:00 GMT</pubDate></item><item><title>高楼扔鸡蛋——动态规划的逆向思维</title><link>https://blog.zoloy.top/posts/%E9%AB%98%E6%A5%BC%E6%89%94%E9%B8%A1%E8%9B%8B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%AB%98%E6%A5%BC%E6%89%94%E9%B8%A1%E8%9B%8B/</guid><description>鸡蛋有限时二分查找并非最优，最优策略让每次测试为最坏情况预留的测试次数相同，体现均匀分配风险原则。</description><pubDate>Mon, 08 Dec 2025 09:00:00 GMT</pubDate></item><item><title>赛马问题——25匹马5条跑道找前三需几场？</title><link>https://blog.zoloy.top/posts/%E8%B5%9B%E9%A9%AC%E9%97%AE%E9%A2%98-25%E5%8C%B95%E8%B7%91%E9%81%93/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E8%B5%9B%E9%A9%AC%E9%97%AE%E9%A2%98-25%E5%8C%B95%E8%B7%91%E9%81%93/</guid><description>通过分组赛缩小候选范围，冠军赛确定第一名，淘汰逻辑压缩候选集，最终决赛解决余量，共需 7 场。</description><pubDate>Sat, 06 Dec 2025 09:00:00 GMT</pubDate></item><item><title>蓝眼睛悖论——Common Knowledge的归纳推理</title><link>https://blog.zoloy.top/posts/%E8%93%9D%E7%9C%BC%E7%9D%9B-%E5%85%AC%E5%85%B1%E7%9F%A5%E8%AF%86%E5%BD%92%E7%BA%B3%E6%8E%A8%E7%90%86/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E8%93%9D%E7%9C%BC%E7%9D%9B-%E5%85%AC%E5%85%B1%E7%9F%A5%E8%AF%86%E5%BD%92%E7%BA%B3%E6%8E%A8%E7%90%86/</guid><description>蓝眼睛悖论揭示公共知识的建立为数学归纳法提供了 base case，游客的话将已知信息转化为公共共识。</description><pubDate>Wed, 03 Dec 2025 09:00:00 GMT</pubDate></item><item><title>海盗分金币——逆向归纳法的博弈论经典</title><link>https://blog.zoloy.top/posts/%E6%B5%B7%E7%9B%97%E5%88%86%E9%87%91%E5%B8%81-%E9%80%86%E5%90%91%E5%BD%92%E7%BA%B3/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E6%B5%B7%E7%9B%97%E5%88%86%E9%87%91%E5%B8%81-%E9%80%86%E5%90%91%E5%BD%92%E7%BA%B3/</guid><description>通过逆向归纳法从最后一轮往前推导，每轮提案者以最低成本收买在自己被否决后过得最差的选民。</description><pubDate>Mon, 01 Dec 2025 09:00:00 GMT</pubDate></item><item><title>Claude Code vs Codex：两种 Agent 编排哲学</title><link>https://blog.zoloy.top/posts/ai-claudecode-vs-codex/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/ai-claudecode-vs-codex/</guid><description>从源码层面对比 Claude Code 与 Codex CLI：两者都是本地 coding agent 且都支持 Skill、Hook、MCP、AGENTS.md，真正的差异在实现栈、云端沙箱并行与多模型、以及 IDE 与企业集成深度。</description><pubDate>Sun, 30 Nov 2025 09:00:00 GMT</pubDate></item><item><title>长任务状态管理：跑两小时的任务怎么不丢状态</title><link>https://blog.zoloy.top/posts/ai-%E9%95%BF%E4%BB%BB%E5%8A%A1%E7%8A%B6%E6%80%81%E7%AE%A1%E7%90%86/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/ai-%E9%95%BF%E4%BB%BB%E5%8A%A1%E7%8A%B6%E6%80%81%E7%AE%A1%E7%90%86/</guid><description>Agent 长任务的状态管理：状态机、断点续跑、任务队列、幂等，以及上下文压缩与状态的关系。</description><pubDate>Sat, 29 Nov 2025 09:00:00 GMT</pubDate></item><item><title>Subagent 与 Skill 注入：多 Agent 编排的艺术</title><link>https://blog.zoloy.top/posts/ai-subagent-skill%E6%B3%A8%E5%85%A5/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/ai-subagent-skill%E6%B3%A8%E5%85%A5/</guid><description>为什么单 Agent 不够：上下文污染、自我肯定偏差、难并行，以及 Subagent 分工隔离与 Skill 按需注入的解法。</description><pubDate>Fri, 28 Nov 2025 09:00:00 GMT</pubDate></item><item><title>水桶取水——扩展欧几里得算法的编程题转化</title><link>https://blog.zoloy.top/posts/%E6%B0%B4%E6%A1%B6%E5%8F%96%E6%B0%B4-%E6%89%A9%E5%B1%95%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E6%B0%B4%E6%A1%B6%E5%8F%96%E6%B0%B4-%E6%89%A9%E5%B1%95%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97/</guid><description>水桶取水问题的数学本质是贝祖定理判断可解性，扩展欧几里得算法求解通解，BFS 求最小步数。</description><pubDate>Fri, 28 Nov 2025 09:00:00 GMT</pubDate></item><item><title>上下文压缩与 Memory 管理：窗口不够用怎么办</title><link>https://blog.zoloy.top/posts/ai-%E4%B8%8A%E4%B8%8B%E6%96%87%E5%8E%8B%E7%BC%A9-memory%E7%AE%A1%E7%90%86/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/ai-%E4%B8%8A%E4%B8%8B%E6%96%87%E5%8E%8B%E7%BC%A9-memory%E7%AE%A1%E7%90%86/</guid><description>Agent 上下文窗口不够用的三类解法：压缩、外置记忆、分层索引，以及记忆的写入时机工程。</description><pubDate>Thu, 27 Nov 2025 09:00:00 GMT</pubDate></item><item><title>提示词工程：System Prompt 怎么驯服模型</title><link>https://blog.zoloy.top/posts/ai-%E6%8F%90%E7%A4%BA%E8%AF%8D%E5%B7%A5%E7%A8%8B-systemprompt/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/ai-%E6%8F%90%E7%A4%BA%E8%AF%8D%E5%B7%A5%E7%A8%8B-systemprompt/</guid><description>System Prompt 的工程方法：角色设定、约束注入、few-shot、结构化输出，以及 Claude Code 的 Skill 注入如何解决提示词过长的问题。</description><pubDate>Wed, 26 Nov 2025 09:00:00 GMT</pubDate></item><item><title>二进制思维——从毒药白鼠到分金块的编码艺术</title><link>https://blog.zoloy.top/posts/%E4%BA%8C%E8%BF%9B%E5%88%B6%E4%B8%8E%E5%8D%9A%E5%BC%88%E8%AE%BA%E6%99%BA%E5%8A%9B%E9%A2%98/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E4%BA%8C%E8%BF%9B%E5%88%B6%E4%B8%8E%E5%8D%9A%E5%BC%88%E8%AE%BA%E6%99%BA%E5%8A%9B%E9%A2%98/</guid><description>毒药白鼠、分金块等经典智力题的二进制编码思想：用有限的二元状态编码远超出直觉的状态空间。</description><pubDate>Wed, 26 Nov 2025 09:00:00 GMT</pubDate></item><item><title>Agent 的本质：LLM + Tool Loop</title><link>https://blog.zoloy.top/posts/ai-agent%E6%9C%AC%E8%B4%A8-toolloop/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/ai-agent%E6%9C%AC%E8%B4%A8-toolloop/</guid><description>拆解 Agent 的核心机制 Tool Loop：think、act、observe 三环节与 ReAct 范式，以及循环卡死、token 爆炸、结果格式化等工程问题。</description><pubDate>Tue, 25 Nov 2025 09:00:00 GMT</pubDate></item><item><title>AI Agent 工程地图——从 LLM 到可编程 Agent</title><link>https://blog.zoloy.top/posts/ai-agent%E5%B7%A5%E7%A8%8B%E5%9C%B0%E5%9B%BE/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/ai-agent%E5%B7%A5%E7%A8%8B%E5%9C%B0%E5%9B%BE/</guid><description>AI Agent 工程系列总纲：把 Agent 拆成 LLM 加工具循环、记忆、编排四层，勾画五大核心主题与 Claude Code 对 Codex 两种编排哲学。</description><pubDate>Mon, 24 Nov 2025 09:00:00 GMT</pubDate></item><item><title>不均匀硬币如何公平决策——抛两次的巧妙解法</title><link>https://blog.zoloy.top/posts/%E4%B8%8D%E5%9D%87%E5%8C%80%E7%A1%AC%E5%B8%81%E5%85%AC%E5%B9%B3%E5%86%B3%E7%AD%96/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E4%B8%8D%E5%9D%87%E5%8C%80%E7%A1%AC%E5%B8%81%E5%85%AC%E5%B9%B3%E5%86%B3%E7%AD%96/</guid><description>利用抛两次硬币取正反/反正序列的对称概率巧妙实现公平决策，揭示伯努利试验的数学之美。</description><pubDate>Mon, 24 Nov 2025 09:00:00 GMT</pubDate></item><item><title>大数据处理题汇总——通用框架 + 10 道高频题</title><link>https://blog.zoloy.top/posts/%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86%E9%A2%98/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%A4%84%E7%90%86%E9%A2%98/</guid><description>海量数据处理题完整汇总：哈希分桶、位图、小顶堆、多路归并等通用框架，以及 URL 去重、Top100 高频词、40 亿整数判断、5 亿中位数等 10 道高频题。</description><pubDate>Sun, 23 Nov 2025 09:00:00 GMT</pubDate></item><item><title>面试智力题汇总——12 大类高频题</title><link>https://blog.zoloy.top/posts/%E6%99%BA%E5%8A%9B%E9%A2%98/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E6%99%BA%E5%8A%9B%E9%A2%98/</guid><description>面试智力题 12 大类完整汇总：二进制、先手必胜、推理、概率、水桶计时赛马、过河过桥、最优解、数字、砝码、灯泡开关、蓝眼睛等，每题含核心思路。</description><pubDate>Sat, 22 Nov 2025 09:00:00 GMT</pubDate></item><item><title>Rand5生成Rand7——拒绝采样的原理与应用</title><link>https://blog.zoloy.top/posts/rand5%E7%94%9F%E6%88%90rand7/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rand5%E7%94%9F%E6%88%90rand7/</guid><description>用两次 rand5 构造 25 种等概率结果放大到 7 以上，截断 21 后模 7 映射，22~25 拒绝重试，拒绝采样保证严格均匀分布</description><pubDate>Fri, 21 Nov 2025 09:00:00 GMT</pubDate></item><item><title>SQL 手撕题库——50 道高频题（含预备题与规律速查）</title><link>https://blog.zoloy.top/posts/sql%E9%A2%98%E5%BA%93/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/sql%E9%A2%98%E5%BA%93/</guid><description>手撕 SQL 题库 50 道高频题完整整理，含班级成绩预备题、每道题的四步模板与坑点、以及 IN vs EXISTS 等核心规律速查。</description><pubDate>Fri, 21 Nov 2025 09:00:00 GMT</pubDate></item><item><title>其他问题——智力题、大数据处理、SQL 题</title><link>https://blog.zoloy.top/posts/%E5%85%B6%E4%BB%96%E9%97%AE%E9%A2%98-%E6%99%BA%E5%8A%9B%E9%A2%98-%E5%A4%A7%E6%95%B0%E6%8D%AE-sql/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%85%B6%E4%BB%96%E9%97%AE%E9%A2%98-%E6%99%BA%E5%8A%9B%E9%A2%98-%E5%A4%A7%E6%95%B0%E6%8D%AE-sql/</guid><description>面试里的三类「其他问题」完整题库：SQL 手撕 50 题、智力题 12 大类、大数据处理 10 题，各整理成一篇。</description><pubDate>Fri, 21 Nov 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode 解题模板——核心建模 + 常用 API 速查（一个题型一个模板）</title><link>https://blog.zoloy.top/posts/leetcode%E8%A7%A3%E9%A2%98%E6%A8%A1%E6%9D%BF-%E6%A0%B8%E5%BF%83%E5%A5%97%E8%B7%AF/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode%E8%A7%A3%E9%A2%98%E6%A8%A1%E6%9D%BF-%E6%A0%B8%E5%BF%83%E5%A5%97%E8%B7%AF/</guid><description>LeetCode 全题型解题模板：每个题型先讲核心建模（最该关心的问题），再给模板、变量、返回值、易错点；末尾附常用 API 与 Lambda 表达式速查。</description><pubDate>Thu, 20 Nov 2025 09:00:00 GMT</pubDate></item><item><title>SQL窗口函数——ROW_NUMBER vs RANK vs DENSE_RANK</title><link>https://blog.zoloy.top/posts/sql%E7%AA%97%E5%8F%A3%E5%87%BD%E6%95%B0-row_number-rank/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/sql%E7%AA%97%E5%8F%A3%E5%87%BD%E6%95%B0-row_number-rank/</guid><description>通过同一份数据对比 ROW_NUMBER、RANK 与 DENSE_RANK 的核心区别，掌握 PARTITION BY 分组窗口与 TopN Per Group 经典模式，区分窗口函数与 GROUP BY 的本质差异。</description><pubDate>Wed, 19 Nov 2025 09:00:00 GMT</pubDate></item><item><title>设计模式面试回答——单例、工厂、策略、责任链与代理</title><link>https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/</guid><description>设计模式面试回答三版本：单例、工厂、模板方法、策略、责任链、代理、装饰器的一句话结论、核心原理与源码应用。</description><pubDate>Wed, 19 Nov 2025 09:00:00 GMT</pubDate></item><item><title>并发编程面试回答——锁、线程池、ThreadLocal 与 JUC</title><link>https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/</guid><description>并发编程面试回答三版本：锁机制、并发底层、线程池、ThreadLocal、JUC 工具类、Unsafe 的一句话结论与核心原理。</description><pubDate>Tue, 18 Nov 2025 09:00:00 GMT</pubDate></item><item><title>JVM 面试回答——内存结构、GC、G1/ZGC 与类加载</title><link>https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-jvm/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-jvm/</guid><description>JVM 面试回答三版本：内存结构、GC 算法、G1/ZGC、类加载、双亲委派、高级特性的一句话结论与核心原理。</description><pubDate>Mon, 17 Nov 2025 09:00:00 GMT</pubDate></item><item><title>SQL陷阱——NOT EXISTS vs NOT IN，NULL毁掉一切</title><link>https://blog.zoloy.top/posts/sql-not-exists-vs-not-in/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/sql-not-exists-vs-not-in/</guid><description>揭示 NOT IN 与 NOT EXISTS 的根本差异——SQL 三值逻辑下 NULL 使 NOT IN 永远返回空集，并给出 NOT EXISTS 替代方案和集合相等判断技巧。</description><pubDate>Sun, 16 Nov 2025 09:00:00 GMT</pubDate></item><item><title>Spring 面试回答——IOC、AOP、Bean 生命周期与循环依赖</title><link>https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-spring/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-spring/</guid><description>Spring 面试回答三版本：IOC、AOP、Bean 生命周期、循环依赖、事务失效、自动装配的一句话结论与核心原理。</description><pubDate>Sun, 16 Nov 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ 面试回答——架构、可靠消息、高可用与死信队列</title><link>https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-rocketmq/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-rocketmq/</guid><description>RocketMQ 面试回答三版本：架构设计、消息可靠原理、集群高可用、死信队列的一句话结论与核心原理。</description><pubDate>Sat, 15 Nov 2025 09:00:00 GMT</pubDate></item><item><title>SQL行转列——CASE WHEN + MAX + GROUP BY的通用范式</title><link>https://blog.zoloy.top/posts/sql-case-when-pivot/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/sql-case-when-pivot/</guid><description>详解 SQL 行转列的通用范式——CASE WHEN + MAX + GROUP BY 跨数据库标准解法，以及 MAX 用来从有值+N 个 NULL 中挑出唯一非 NULL 值的底层原理。</description><pubDate>Fri, 14 Nov 2025 09:00:00 GMT</pubDate></item><item><title>Redis 面试回答——数据结构、持久化、高可用与缓存设计</title><link>https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-redis/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-redis/</guid><description>Redis 面试回答三版本：核心数据结构、持久化策略、IO 模型、高可用、高性能、缓存设计、并发控制的一句话结论与核心原理。</description><pubDate>Fri, 14 Nov 2025 09:00:00 GMT</pubDate></item><item><title>MySQL 面试回答——事务 MVCC、索引、锁、日志与主从</title><link>https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-mysql/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-mysql/</guid><description>MySQL 面试回答三版本：事务与 MVCC、存储引擎、索引、锁、日志、SQL 优化、主从架构的一句话结论与核心原理。</description><pubDate>Thu, 13 Nov 2025 09:00:00 GMT</pubDate></item><item><title>Java 基础面试回答——IO 模型、HashMap、ArrayList、Java8 与虚拟线程</title><link>https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-java%E5%9F%BA%E7%A1%80/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94-java%E5%9F%BA%E7%A1%80/</guid><description>Java 基础面试回答三版本：IO 模型、HashMap、ArrayList、Java8 新特性、虚拟线程的一句话结论、核心原理与底层深入。</description><pubDate>Wed, 12 Nov 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——SQL篇（窗口函数、NOT EXISTS、行转列）</title><link>https://blog.zoloy.top/posts/leetcode-sql%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-sql%E7%AF%87/</guid><description>SQL 五大技巧：窗口函数排名、NOT EXISTS 优于 NOT IN、CASE WHEN 行转列、GROUP_CONCAT 集合比较、HAVING 布尔聚合</description><pubDate>Tue, 11 Nov 2025 09:00:00 GMT</pubDate></item><item><title>面试回答框架——七要素与三版本</title><link>https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94%E6%A1%86%E6%9E%B6-%E4%B8%83%E8%A6%81%E7%B4%A0%E4%B8%8E%E4%B8%89%E7%89%88%E6%9C%AC/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%9D%A2%E8%AF%95%E5%9B%9E%E7%AD%94%E6%A1%86%E6%9E%B6-%E4%B8%83%E8%A6%81%E7%B4%A0%E4%B8%8E%E4%B8%89%E7%89%88%E6%9C%AC/</guid><description>一套统一的面试回答框架：项目/实习用七要素（结论→背景→目标→难点→取舍→行动→复盘），知识类用三版本（30秒一句话/2分钟核心/5-10分钟深入），并对照 STAR 与系统设计四步法说明来龙去脉。</description><pubDate>Mon, 10 Nov 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——技巧篇（位运算、多数投票、原地排序）</title><link>https://blog.zoloy.top/posts/leetcode-%E6%8A%80%E5%B7%A7%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E6%8A%80%E5%B7%A7%E7%AF%87/</guid><description>技巧五题：只出现一次的数字位运算、多数元素摩尔投票、颜色分类三路快排、下一个排列、寻找重复数。</description><pubDate>Fri, 07 Nov 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——多维动态规划篇（路径、回文、编辑距离）</title><link>https://blog.zoloy.top/posts/leetcode-%E5%A4%9A%E7%BB%B4%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E5%A4%9A%E7%BB%B4%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%AF%87/</guid><description>多维动态规划五题：不同路径、最小路径和、最长回文子串、最长公共子序列、编辑距离。</description><pubDate>Tue, 04 Nov 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——动态规划篇（状态定义、转移方程、背包）</title><link>https://blog.zoloy.top/posts/leetcode-%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%AF%87/</guid><description>动态规划九题：爬楼梯、打家劫舍、零钱兑换、单词拆分、最长递增子序列、乘积最大子数组、分割等和子集、最长有效括号。</description><pubDate>Sat, 01 Nov 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——贪心篇（买卖股票、跳跃游戏、区间划分）</title><link>https://blog.zoloy.top/posts/leetcode-%E8%B4%AA%E5%BF%83%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E8%B4%AA%E5%BF%83%E7%AF%87/</guid><description>贪心四题：买卖股票一次交易、跳跃游戏与跳跃游戏 II、划分字母区间维护最后出现位置。</description><pubDate>Wed, 29 Oct 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——堆篇（TopK、频率统计、数据流中位数）</title><link>https://blog.zoloy.top/posts/leetcode-%E5%A0%86%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E5%A0%86%E7%AF%87/</guid><description>堆三题：第 K 大元素用最小堆、前 K 高频元素堆加哈希计数、数据流中位数用大小顶堆。</description><pubDate>Sun, 26 Oct 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——栈篇（括号匹配、单调栈）</title><link>https://blog.zoloy.top/posts/leetcode-%E6%A0%88%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E6%A0%88%E7%AF%87/</guid><description>栈五题：有效的括号、最小栈、字符串解码、每日温度单调栈、柱状图中最大的矩形单调栈。</description><pubDate>Thu, 23 Oct 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——二分查找篇（边界控制与旋转数组）</title><link>https://blog.zoloy.top/posts/leetcode-%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE%E7%AF%87/</guid><description>二分查找六题：搜索插入位置、二维矩阵、找首尾位置、搜索旋转数组、找最小值、两个正序数组的中位数。</description><pubDate>Mon, 20 Oct 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——回溯篇（选择-递归-撤销、剪枝）</title><link>https://blog.zoloy.top/posts/leetcode-%E5%9B%9E%E6%BA%AF%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E5%9B%9E%E6%BA%AF%E7%AF%87/</guid><description>回溯八题：全排列与子集的选择撤销、组合总和剪枝、括号生成、单词搜索、分割回文串、N 皇后。</description><pubDate>Fri, 17 Oct 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——图论篇（DFS、BFS、拓扑排序、Trie）</title><link>https://blog.zoloy.top/posts/leetcode-%E5%9B%BE%E8%AE%BA%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E5%9B%BE%E8%AE%BA%E7%AF%87/</guid><description>图论四题：岛屿数量 DFS 淹没、腐烂橘子多源 BFS、课程表拓扑排序判环、实现 Trie 前缀树。</description><pubDate>Tue, 14 Oct 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——二叉树篇（遍历、深度、最近公共祖先）</title><link>https://blog.zoloy.top/posts/leetcode-%E4%BA%8C%E5%8F%89%E6%A0%91%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E4%BA%8C%E5%8F%89%E6%A0%91%E7%AF%87/</guid><description>二叉树十五题：中序与层序遍历、最大深度与直径、验证 BST、前中序构造、最近公共祖先、最大路径和。</description><pubDate>Sat, 11 Oct 2025 09:00:00 GMT</pubDate></item><item><title>字母异位词分组——HashMap处理集合分组的经典模式</title><link>https://blog.zoloy.top/posts/%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D%E5%88%86%E7%BB%84-hashmap%E6%A8%A1%E5%BC%8F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D%E5%88%86%E7%BB%84-hashmap%E6%A8%A1%E5%BC%8F/</guid><description>利用规范表示作为 HashMap 的 key，将字母异位词归为等价类，揭示分组问题的通用模式。</description><pubDate>Fri, 10 Oct 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——链表篇（反转、合并、环检测、K 个一组翻转）</title><link>https://blog.zoloy.top/posts/leetcode-%E9%93%BE%E8%A1%A8%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E9%93%BE%E8%A1%A8%E7%AF%87/</guid><description>链表十四题：三指针反转、dummy 节点合并、Floyd 快慢指针判环、K 个一组翻转、归并排序链表、LRU 缓存。</description><pubDate>Wed, 08 Oct 2025 09:00:00 GMT</pubDate></item><item><title>合并K个升序链表——小顶堆与分治归并</title><link>https://blog.zoloy.top/posts/%E5%90%88%E5%B9%B6k%E4%B8%AA%E5%8D%87%E5%BA%8F%E9%93%BE%E8%A1%A8/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%90%88%E5%B9%B6k%E4%B8%AA%E5%8D%87%E5%BA%8F%E9%93%BE%E8%A1%A8/</guid><description>合并 K 个升序链表的两大解法：小顶堆每次取 K 个链表的当前最小头节点，分治法两两归并逐步合并，时间复杂度对比分析。</description><pubDate>Wed, 08 Oct 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——矩阵篇（原地标记与转置翻转）</title><link>https://blog.zoloy.top/posts/leetcode-%E7%9F%A9%E9%98%B5%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E7%9F%A9%E9%98%B5%E7%AF%87/</guid><description>矩阵四题：矩阵置零首行首列标记、螺旋矩阵按层遍历、旋转图像转置加翻转、搜索二维矩阵 II 从左下角起步。</description><pubDate>Sun, 05 Oct 2025 09:00:00 GMT</pubDate></item><item><title>单调栈与滑动窗口——三个模板解决80%的数组区间问题</title><link>https://blog.zoloy.top/posts/%E5%8D%95%E8%B0%83%E6%A0%88%E4%B8%8E%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3%E6%9C%80%E5%A4%A7%E5%80%BC/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%8D%95%E8%B0%83%E6%A0%88%E4%B8%8E%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3%E6%9C%80%E5%A4%A7%E5%80%BC/</guid><description>单调栈维护有序性解决下一个更大元素问题，单调队列维护时效性解决滑动窗口最大值，有序性与时效性的经典博弈。</description><pubDate>Sun, 05 Oct 2025 09:00:00 GMT</pubDate></item><item><title>动态规划——最优子结构与状态转移方程</title><link>https://blog.zoloy.top/posts/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E6%A0%B8%E5%BF%83%E6%80%9D%E6%83%B3/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E6%A0%B8%E5%BF%83%E6%80%9D%E6%83%B3/</guid><description>动态规划两大要素——最优子结构与重叠子问题，通过状态定义和转移方程将指数级递归转化为多项式级递推求解。</description><pubDate>Fri, 03 Oct 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——普通数组篇（前缀积与原地标记）</title><link>https://blog.zoloy.top/posts/leetcode-%E6%99%AE%E9%80%9A%E6%95%B0%E7%BB%84%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E6%99%AE%E9%80%9A%E6%95%B0%E7%BB%84%E7%AF%87/</guid><description>普通数组五题：最大子数组和 Kadane、合并区间排序、轮转数组三次反转、除自身乘积前后缀、缺失正数原地哈希。</description><pubDate>Thu, 02 Oct 2025 09:00:00 GMT</pubDate></item><item><title>前缀和+哈希表——子数组问题的万能钥匙</title><link>https://blog.zoloy.top/posts/%E5%89%8D%E7%BC%80%E5%92%8C%E4%B8%8E%E5%93%88%E5%B8%8C%E8%A1%A8/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%89%8D%E7%BC%80%E5%92%8C%E4%B8%8E%E5%93%88%E5%B8%8C%E8%A1%A8/</guid><description>前缀和将子数组求和转化为两数之差，配合哈希表将 O(n²)降为 O(n)，是子数组和类问题的万能解题模板。</description><pubDate>Tue, 30 Sep 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——子串篇（前缀和与单调队列）</title><link>https://blog.zoloy.top/posts/leetcode-%E5%AD%90%E4%B8%B2%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E5%AD%90%E4%B8%B2%E7%AF%87/</guid><description>子串三题：和为 K 用前缀和哈希、滑动窗口最大值用单调队列、最小覆盖子串用双指针收缩。</description><pubDate>Mon, 29 Sep 2025 09:00:00 GMT</pubDate></item><item><title>原地哈希——把数组本身当成哈希表</title><link>https://blog.zoloy.top/posts/%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84%E5%8E%9F%E5%9C%B0%E5%93%88%E5%B8%8C/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E4%BA%8C%E7%BB%B4%E6%95%B0%E7%BB%84%E5%8E%9F%E5%9C%B0%E5%93%88%E5%B8%8C/</guid><description>把数组本身当哈希表，利用下标与值的映射关系原地标记状态，实现 O(1)空间解决缺失正整数等经典问题。</description><pubDate>Sun, 28 Sep 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——滑动窗口篇（窗口收缩与计数维护）</title><link>https://blog.zoloy.top/posts/leetcode-%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E6%BB%91%E5%8A%A8%E7%AA%97%E5%8F%A3%E7%AF%87/</guid><description>滑动窗口两题：无重复字符最长子串用 Set 收缩窗口、字母异位词用固定窗口计数比对。</description><pubDate>Fri, 26 Sep 2025 09:00:00 GMT</pubDate></item><item><title>二叉树遍历——前序、中序、后序、层序的递归与迭代模板</title><link>https://blog.zoloy.top/posts/%E4%BA%8C%E5%8F%89%E6%A0%91%E9%81%8D%E5%8E%86%E6%A8%A1%E6%9D%BF-%E5%89%8D%E4%B8%AD%E5%90%8E%E5%B1%82%E5%BA%8F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E4%BA%8C%E5%8F%89%E6%A0%91%E9%81%8D%E5%8E%86%E6%A8%A1%E6%9D%BF-%E5%89%8D%E4%B8%AD%E5%90%8E%E5%B1%82%E5%BA%8F/</guid><description>前中后层序四种遍历的递归与迭代统一模板，前中后只是访问根节点的时机不同，层序用队列逐层处理。</description><pubDate>Thu, 25 Sep 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——双指针篇（相向与快慢双指针）</title><link>https://blog.zoloy.top/posts/leetcode-%E5%8F%8C%E6%8C%87%E9%92%88%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E5%8F%8C%E6%8C%87%E9%92%88%E7%AF%87/</guid><description>双指针四题：移动零快慢指针、盛水容器相向收缩、三数之和排序去重、接雨水按列求和。</description><pubDate>Tue, 23 Sep 2025 09:00:00 GMT</pubDate></item><item><title>二分查找的8种变体——不只是找等于target</title><link>https://blog.zoloy.top/posts/%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE-%E5%8F%98%E4%BD%93%E6%A8%A1%E6%9D%BF/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E4%BA%8C%E5%88%86%E6%9F%A5%E6%89%BE-%E5%8F%98%E4%BD%93%E6%A8%A1%E6%9D%BF/</guid><description>二分查找核心在于区间定义（左闭右闭/左闭右开），掌握 8 种变体模板统一解决查找等于、第一个、最后一个等场景。</description><pubDate>Tue, 23 Sep 2025 09:00:00 GMT</pubDate></item><item><title>LeetCode Hot 100——哈希篇（O(1) 补数查询与计数）</title><link>https://blog.zoloy.top/posts/leetcode-%E5%93%88%E5%B8%8C%E7%AF%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/leetcode-%E5%93%88%E5%B8%8C%E7%AF%87/</guid><description>哈希表三题：两数之和 O(1) 补数查询、字母异位词分组排序作 key、最长连续序列用 Set 去重。</description><pubDate>Sat, 20 Sep 2025 09:00:00 GMT</pubDate></item><item><title>LRU缓存——HashMap+双向链表实现O(1)淘汰</title><link>https://blog.zoloy.top/posts/lru%E7%BC%93%E5%AD%98-hashmap-%E5%8F%8C%E5%90%91%E9%93%BE%E8%A1%A8/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/lru%E7%BC%93%E5%AD%98-hashmap-%E5%8F%8C%E5%90%91%E9%93%BE%E8%A1%A8/</guid><description>HashMap 快速查找+双向链表维护访问顺序，实现 O(1)级 LRU 缓存淘汰，虚拟头尾节点简化边界操作</description><pubDate>Thu, 18 Sep 2025 09:00:00 GMT</pubDate></item><item><title>Kadane算法——最大子数组和的单遍历解法</title><link>https://blog.zoloy.top/posts/kadane%E7%AE%97%E6%B3%95-%E6%9C%80%E5%A4%A7%E5%AD%90%E6%95%B0%E7%BB%84%E5%92%8C/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/kadane%E7%AE%97%E6%B3%95-%E6%9C%80%E5%A4%A7%E5%AD%90%E6%95%B0%E7%BB%84%E5%92%8C/</guid><description>Kadane 算法 O(n)单遍历解最大子数组和，curSum&lt;0 时丢弃负数前缀重新开始，核心 dp[i]=max(nums[i],dp[i-1]+nums[i])</description><pubDate>Mon, 15 Sep 2025 09:00:00 GMT</pubDate></item><item><title>Floyd快慢指针——为何兔子和乌龟一定会相遇？</title><link>https://blog.zoloy.top/posts/floyd-%E5%BF%AB%E6%85%A2%E6%8C%87%E9%92%88-%E7%8E%AF%E6%A3%80%E6%B5%8B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/floyd-%E5%BF%AB%E6%85%A2%E6%8C%87%E9%92%88-%E7%8E%AF%E6%A3%80%E6%B5%8B/</guid><description>快慢指针每步缩小距离 1 保证环内必相遇，相遇后等速从表头和相遇点出发在环入口重逢，由数学推导 a=(n-1)L+c 保证正确性。</description><pubDate>Sat, 13 Sep 2025 09:00:00 GMT</pubDate></item><item><title>BFS与DFS——两种搜索模板解决所有遍历问题</title><link>https://blog.zoloy.top/posts/bfs-dfs%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/bfs-dfs%E7%AE%97%E6%B3%95%E6%A8%A1%E6%9D%BF/</guid><description>BFS 层序遍历中每轮队列 size 计数是区分层级的关键，DFS 回溯枚举所有路径，两种模板覆盖所有图遍历场景。</description><pubDate>Thu, 11 Sep 2025 09:00:00 GMT</pubDate></item><item><title>从输入URL到页面展示——浏览器与网络的完整协作</title><link>https://blog.zoloy.top/posts/%E8%BE%93%E5%85%A5url%E5%88%B0%E9%A1%B5%E9%9D%A2%E5%B1%95%E7%A4%BA%E5%85%A8%E6%B5%81%E7%A8%8B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E8%BE%93%E5%85%A5url%E5%88%B0%E9%A1%B5%E9%9D%A2%E5%B1%95%E7%A4%BA%E5%85%A8%E6%B5%81%E7%A8%8B/</guid><description>从 URL 输入到页面展示经历 DNS、TCP、TLS、HTTP、解析渲染七个阶段，每个阶段都有对应的性能优化策略。</description><pubDate>Mon, 08 Sep 2025 09:00:00 GMT</pubDate></item><item><title>网页慢转圈排查：从物理层到应用层的分层诊断</title><link>https://blog.zoloy.top/posts/%E7%BD%91%E9%A1%B5%E6%85%A2%E8%BD%AC%E5%9C%88%E6%8E%92%E6%9F%A5/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E7%BD%91%E9%A1%B5%E6%85%A2%E8%BD%AC%E5%9C%88%E6%8E%92%E6%9F%A5/</guid><description>从物理层到应用层的六层网页慢排查体系，先定位 TTFB 还是 Content Download，再逐层排障。</description><pubDate>Sat, 06 Sep 2025 09:00:00 GMT</pubDate></item><item><title>服务端正常启动但客户端请求不到：网络可达性排查全链路</title><link>https://blog.zoloy.top/posts/%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%AD%A3%E5%B8%B8%E5%90%AF%E5%8A%A8%E4%BD%86%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%AF%B7%E6%B1%82%E4%B8%8D%E5%88%B0/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E6%9C%8D%E5%8A%A1%E7%AB%AF%E6%AD%A3%E5%B8%B8%E5%90%AF%E5%8A%A8%E4%BD%86%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%AF%B7%E6%B1%82%E4%B8%8D%E5%88%B0/</guid><description>从 ping 到 telnet 到防火墙到监听地址的六层可达性排查清单，覆盖 90%的服务连不上问题。</description><pubDate>Wed, 03 Sep 2025 09:00:00 GMT</pubDate></item><item><title>服务端大量TIME_WAIT：原因、危害与解决方案</title><link>https://blog.zoloy.top/posts/%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%A4%A7%E9%87%8Ftime_wait%E5%8E%9F%E5%9B%A0/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E6%9C%8D%E5%8A%A1%E7%AB%AF%E5%A4%A7%E9%87%8Ftime_wait%E5%8E%9F%E5%9B%A0/</guid><description>TIME_WAIT 本质是 TCP 可靠关闭的副作用，解决关键在于减少连接创建销毁频率，而非盲目调整内核参数。</description><pubDate>Mon, 01 Sep 2025 09:00:00 GMT</pubDate></item><item><title>为什么四次挥手要等2MSL</title><link>https://blog.zoloy.top/posts/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B%E8%A6%81%E7%AD%892msl/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B%E8%A6%81%E7%AD%892msl/</guid><description>TIME_WAIT 等待 2MSL 的两大原因：确保最后的 ACK 被对端接收，及让旧连接的迷途报文在网络中彻底消失。</description><pubDate>Fri, 29 Aug 2025 09:00:00 GMT</pubDate></item><item><title>为什么四次挥手中间两次不能合并</title><link>https://blog.zoloy.top/posts/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B%E4%B8%AD%E9%97%B4%E4%B8%A4%E6%AC%A1%E4%B8%8D%E8%83%BD%E5%90%88%E5%B9%B6/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B%E4%B8%AD%E9%97%B4%E4%B8%A4%E6%AC%A1%E4%B8%8D%E8%83%BD%E5%90%88%E5%B9%B6/</guid><description>TCP 全双工通信决定了被动关闭方的 ACK 和 FIN 代表不同语义，中间两次不能合并，深入理解数据发送与关闭的独立性。</description><pubDate>Wed, 27 Aug 2025 09:00:00 GMT</pubDate></item><item><title>TCP粘包——三种应用层解决方案与Netty的实现</title><link>https://blog.zoloy.top/posts/tcp%E7%B2%98%E5%8C%85%E4%B8%89%E7%A7%8D%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/tcp%E7%B2%98%E5%8C%85%E4%B8%89%E7%A7%8D%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88/</guid><description>TCP 字节流没有消息边界，详解粘包根因及固定长度、分隔符、长度字段三种应用层解决方案与 Netty 实现。</description><pubDate>Sun, 24 Aug 2025 09:00:00 GMT</pubDate></item><item><title>TCP拥塞控制——从慢启动到BBR的演进</title><link>https://blog.zoloy.top/posts/tcp%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/tcp%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6/</guid><description>从慢启动到 BBR，详解 TCP 拥塞控制四大算法的状态迁移及 AIMD 动态调整拥塞窗口的核心思想。</description><pubDate>Fri, 22 Aug 2025 09:00:00 GMT</pubDate></item><item><title>TCP四次挥手——为什么TIME_WAIT要等2MSL？</title><link>https://blog.zoloy.top/posts/tcp%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/tcp%E5%9B%9B%E6%AC%A1%E6%8C%A5%E6%89%8B/</guid><description>深入解析 TCP 四次挥手全过程及 TIME_WAIT 状态的产生原因，理解主动关闭方为何需要等待 2MSL。</description><pubDate>Tue, 19 Aug 2025 09:00:00 GMT</pubDate></item><item><title>TCP与UDP区别：从传输层两大协议到QUIC的演进</title><link>https://blog.zoloy.top/posts/tcp%E4%B8%8Eudp%E5%8C%BA%E5%88%AB/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/tcp%E4%B8%8Eudp%E5%8C%BA%E5%88%AB/</guid><description>TCP 面向可靠，UDP 追求速度，深刻理解传输层两种设计哲学的取舍及 QUIC 的演进方向。</description><pubDate>Sun, 17 Aug 2025 09:00:00 GMT</pubDate></item><item><title>TCP三次握手——为什么不是两次或四次？</title><link>https://blog.zoloy.top/posts/tcp%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/tcp%E4%B8%89%E6%AC%A1%E6%8F%A1%E6%89%8B/</guid><description>论证 TCP 为什么三次握手刚好——两次不足以防止历史重复连接，四次没必要因为 SYN+ACK 可合并，三次精确满足双方确认收发能力+同步初始序列号+防旧连接干扰。</description><pubDate>Thu, 14 Aug 2025 09:00:00 GMT</pubDate></item><item><title>SYN Flood攻击与syncookies防御——半连接队列打满的原理</title><link>https://blog.zoloy.top/posts/tcp-syn-flood-syncookies/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/tcp-syn-flood-syncookies/</guid><description>解析 SYN Flood 攻击原理——利用三次握手不对称性以极小成本打满半连接队列，syncookies 将连接状态编码进 ISN 序列号实现无状态防御，优雅地将存储开销转为计算开销。</description><pubDate>Tue, 12 Aug 2025 09:00:00 GMT</pubDate></item><item><title>SQL注入、XSS、CSRF——Web安全的三大经典攻击</title><link>https://blog.zoloy.top/posts/sql%E6%B3%A8%E5%85%A5-xss-csrf/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/sql%E6%B3%A8%E5%85%A5-xss-csrf/</guid><description>梳理 Web 安全三大经典攻击的原理与防御——SQL 注入用参数化查询防代码拼接，XSS 靠输出编码+CSP+HttpOnly，CSRF 用 Token+SameSite Cookie 阻断跨站伪造。</description><pubDate>Sat, 09 Aug 2025 09:00:00 GMT</pubDate></item><item><title>OSI七层模型与TCP/IP四层模型</title><link>https://blog.zoloy.top/posts/osi%E4%B8%83%E5%B1%82%E6%A8%A1%E5%9E%8B%E4%B8%8Etcp-ip%E5%9B%9B%E5%B1%82%E6%A8%A1%E5%9E%8B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/osi%E4%B8%83%E5%B1%82%E6%A8%A1%E5%9E%8B%E4%B8%8Etcp-ip%E5%9B%9B%E5%B1%82%E6%A8%A1%E5%9E%8B/</guid><description>OSI 七层是理论蓝图先有模型后有协议，TCP/IP 四层是工程事实标准先有协议后有模型，分层思想使各层独立演进互不影响</description><pubDate>Thu, 07 Aug 2025 09:00:00 GMT</pubDate></item><item><title>Nginx负载均衡——5种算法与生产实践</title><link>https://blog.zoloy.top/posts/nginx%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1-5%E7%A7%8D%E7%AE%97%E6%B3%95/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/nginx%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1-5%E7%A7%8D%E7%AE%97%E6%B3%95/</guid><description>Nginx 五种负载均衡算法：轮询、加权轮询平滑算法避免打桩、IP 哈希保持会话、URL 一致性哈希最小化缓存失效、最短时间商业版</description><pubDate>Tue, 05 Aug 2025 09:00:00 GMT</pubDate></item><item><title>HTTP长连接 vs WebSocket——从半双工到全双工的演进</title><link>https://blog.zoloy.top/posts/http%E9%95%BF%E8%BF%9E%E6%8E%A5-websocket/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/http%E9%95%BF%E8%BF%9E%E6%8E%A5-websocket/</guid><description>HTTP 长连接只是复用 TCP 一问一答仍是半双工，WebSocket 通过 HTTP Upgrade 握手将 TCP 升级为全双工帧协议实现双向实时推送。</description><pubDate>Sat, 02 Aug 2025 09:00:00 GMT</pubDate></item><item><title>HTTP状态码与方法语义——从GET/POST到502/504</title><link>https://blog.zoloy.top/posts/http%E7%8A%B6%E6%80%81%E7%A0%81-%E6%96%B9%E6%B3%95%E8%AF%AD%E4%B9%89/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/http%E7%8A%B6%E6%80%81%E7%A0%81-%E6%96%B9%E6%B3%95%E8%AF%AD%E4%B9%89/</guid><description>301 永久重定向浏览器缓存 SEO 权重传递，302 临时重定向每次回源；502 是上游无效响应，504 是上游超时无响应。</description><pubDate>Thu, 31 Jul 2025 09:00:00 GMT</pubDate></item><item><title>HTTPS握手过程——TLS是怎么保护通信安全的</title><link>https://blog.zoloy.top/posts/https%E6%8F%A1%E6%89%8B%E8%BF%87%E7%A8%8B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/https%E6%8F%A1%E6%89%8B%E8%BF%87%E7%A8%8B/</guid><description>TLS 1.2 用三个随机数协商会话密钥，ECDHE 临时密钥对实现前向安全，TLS 1.3 砍掉 RSA 精简为 1-RTT 并强制前向安全。</description><pubDate>Mon, 28 Jul 2025 09:00:00 GMT</pubDate></item><item><title>HTTP/2 vs HTTP/3——从TCP队头阻塞到QUIC的彻底解决</title><link>https://blog.zoloy.top/posts/http2-http3-quic/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/http2-http3-quic/</guid><description>HTTP/2 多路复用解决 HTTP 层队头阻塞但受 TCP 层拖累，HTTP/3 基于 QUIC 让每个 Stream 独立重传彻底根除队头阻塞。</description><pubDate>Sat, 26 Jul 2025 09:00:00 GMT</pubDate></item><item><title>HTTP vs RPC：两种服务间通信协议的全面对比</title><link>https://blog.zoloy.top/posts/http-vs-rpc/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/http-vs-rpc/</guid><description>HTTP 面向资源通用性强适合对外 API，RPC 面向方法高性能强类型适合内部微服务，网关层用 REST 内部用 gRPC 各取所长。</description><pubDate>Wed, 23 Jul 2025 09:00:00 GMT</pubDate></item><item><title>DNS域名解析——从输入URL到返回IP的完整链路</title><link>https://blog.zoloy.top/posts/dns%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/dns%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/</guid><description>DNS 是分布式树状数据库，解析从浏览器缓存到 hosts 到递归查询根/TLD/权威服务器逐级查找，多级缓存使 90% 查询在本地完成。</description><pubDate>Mon, 21 Jul 2025 09:00:00 GMT</pubDate></item><item><title>DNS over TCP vs UDP：为什么域名解析默认走UDP</title><link>https://blog.zoloy.top/posts/dns-over-tcp-vs-udp/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/dns-over-tcp-vs-udp/</guid><description>DNS 选 UDP 因其无连接 1-RTT 延迟、无状态低资源消耗完美匹配海量小查询模式，应用层超时重传加缓存补偿可靠性。</description><pubDate>Fri, 18 Jul 2025 09:00:00 GMT</pubDate></item><item><title>DDoS攻击详解：从僵尸网络到流量清洗</title><link>https://blog.zoloy.top/posts/ddos%E6%94%BB%E5%87%BB%E8%AF%A6%E8%A7%A3/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/ddos%E6%94%BB%E5%87%BB%E8%AF%A6%E8%A7%A3/</guid><description>DDoS 是不对称资源消耗战：SYN Flood 半连接耗尽、UDP 反射放大、HTTP Flood 伪装正常请求，防御需 CDN 分散加流量清洗纵深体系。</description><pubDate>Wed, 16 Jul 2025 09:00:00 GMT</pubDate></item><item><title>Cookie、Session、JWT——三种会话机制的选型与实践</title><link>https://blog.zoloy.top/posts/cookie-session-jwt/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/cookie-session-jwt/</guid><description>Cookie 是传输载体，Session 存服务端可主动销毁，JWT 自包含无状态验签适合分布式，三者配合使用形成完整鉴权体系。</description><pubDate>Sun, 13 Jul 2025 09:00:00 GMT</pubDate></item><item><title>页面置换算法——从OPT到LRU到Clock的演进</title><link>https://blog.zoloy.top/posts/%E9%A1%B5%E9%9D%A2%E7%BD%AE%E6%8D%A2%E7%AE%97%E6%B3%95-lru-clock/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%A1%B5%E9%9D%A2%E7%BD%AE%E6%8D%A2%E7%AE%97%E6%B3%95-lru-clock/</guid><description>从 OPT 的理论下界到 Clock 的工程实现，Clock 算法用硬件访问位和环形指针以 O(1)复杂度近似 LRU 效果。</description><pubDate>Fri, 11 Jul 2025 09:00:00 GMT</pubDate></item><item><title>零拷贝——为什么Kafka和Nginx这么快？</title><link>https://blog.zoloy.top/posts/%E9%9B%B6%E6%8B%B7%E8%B4%9D%E5%8E%9F%E7%90%86/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E9%9B%B6%E6%8B%B7%E8%B4%9D%E5%8E%9F%E7%90%86/</guid><description>零拷贝通过 sendfile 让数据从 Page Cache 直接到网卡，避免用户态中转，Kafka 吞吐量因此提升一倍。</description><pubDate>Tue, 08 Jul 2025 09:00:00 GMT</pubDate></item><item><title>进程间通讯IPC全览：七种方式的原理与选型</title><link>https://blog.zoloy.top/posts/%E8%BF%9B%E7%A8%8B%E9%97%B4%E9%80%9A%E8%AE%AFipc%E5%85%A8%E8%A7%88/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E8%BF%9B%E7%A8%8B%E9%97%B4%E9%80%9A%E8%AE%AFipc%E5%85%A8%E8%A7%88/</guid><description>七种 IPC 方式按数据传输模式分为消息传递型、共享内存型和同步型，选型核心取决于数据量和通讯模式。</description><pubDate>Sun, 06 Jul 2025 09:00:00 GMT</pubDate></item><item><title>进程调度算法详解：从FCFS到多级反馈队列</title><link>https://blog.zoloy.top/posts/%E8%BF%9B%E7%A8%8B%E8%B0%83%E5%BA%A6%E7%AE%97%E6%B3%95%E8%AF%A6%E8%A7%A3/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E8%BF%9B%E7%A8%8B%E8%B0%83%E5%BA%A6%E7%AE%97%E6%B3%95%E8%AF%A6%E8%A7%A3/</guid><description>从 FCFS 到多级反馈队列的六种调度算法演进，MLFQ 通过边运行边学习的动态优先级实现通用系统的最佳调度。</description><pubDate>Thu, 03 Jul 2025 09:00:00 GMT</pubDate></item><item><title>进程、线程、协程——三者的本质区别与适用场景</title><link>https://blog.zoloy.top/posts/%E8%BF%9B%E7%A8%8B%E7%BA%BF%E7%A8%8B%E5%8D%8F%E7%A8%8B%E7%9A%84%E6%9C%AC%E8%B4%A8%E5%8C%BA%E5%88%AB/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E8%BF%9B%E7%A8%8B%E7%BA%BF%E7%A8%8B%E5%8D%8F%E7%A8%8B%E7%9A%84%E6%9C%AC%E8%B4%A8%E5%8C%BA%E5%88%AB/</guid><description>进程是资源分配的最小单位，线程是 CPU 调度的最小单位，协程在用户态调度实现极致轻量的并发模型。</description><pubDate>Tue, 01 Jul 2025 09:00:00 GMT</pubDate></item><item><title>虚拟内存与物理内存——操作系统最优雅的&quot;骗局</title><link>https://blog.zoloy.top/posts/%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98%E4%B8%8E%E7%89%A9%E7%90%86%E5%86%85%E5%AD%98/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E8%99%9A%E6%8B%9F%E5%86%85%E5%AD%98%E4%B8%8E%E7%89%A9%E7%90%86%E5%86%85%E5%AD%98/</guid><description>虚拟内存通过 MMU 加页表加 TLB 加缺页中断让每个进程拥有独占内存的幻觉，同时实现隔离与高效利用。</description><pubDate>Sun, 29 Jun 2025 09:00:00 GMT</pubDate></item><item><title>线程间通讯方式：五种同步机制的原理与选型</title><link>https://blog.zoloy.top/posts/%E7%BA%BF%E7%A8%8B%E9%97%B4%E9%80%9A%E8%AE%AF%E6%96%B9%E5%BC%8F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E7%BA%BF%E7%A8%8B%E9%97%B4%E9%80%9A%E8%AE%AF%E6%96%B9%E5%BC%8F/</guid><description>线程间通讯的本质挑战不是传递数据而是安全地访问共享内存，五种同步机制各有适用临界区长度。</description><pubDate>Thu, 26 Jun 2025 09:00:00 GMT</pubDate></item><item><title>用户态和内核态：CPU权限隔离的底层原理</title><link>https://blog.zoloy.top/posts/%E7%94%A8%E6%88%B7%E6%80%81%E5%92%8C%E5%86%85%E6%A0%B8%E6%80%81/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E7%94%A8%E6%88%B7%E6%80%81%E5%92%8C%E5%86%85%E6%A0%B8%E6%80%81/</guid><description>CPU 通过 Ring 0/3 硬件特权级实现用户态与内核态隔离，系统调用是跨越特权级的唯一合法桥梁。</description><pubDate>Tue, 24 Jun 2025 09:00:00 GMT</pubDate></item><item><title>死锁的四个条件与银行家算法</title><link>https://blog.zoloy.top/posts/%E6%AD%BB%E9%94%81%E7%9A%84%E5%9B%9B%E4%B8%AA%E6%9D%A1%E4%BB%B6%E4%B8%8E%E9%93%B6%E8%A1%8C%E5%AE%B6%E7%AE%97%E6%B3%95/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E6%AD%BB%E9%94%81%E7%9A%84%E5%9B%9B%E4%B8%AA%E6%9D%A1%E4%BB%B6%E4%B8%8E%E9%93%B6%E8%A1%8C%E5%AE%B6%E7%AE%97%E6%B3%95/</guid><description>死锁是四个条件同时满足的必然结果，破坏任一条件即可免疫，资源有序分配是最常用的工程实践。</description><pubDate>Sat, 21 Jun 2025 09:00:00 GMT</pubDate></item><item><title>操作系统内存不足处理：从kswapd到OOM Killer的完整链条</title><link>https://blog.zoloy.top/posts/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E4%B8%8D%E8%B6%B3%E5%A4%84%E7%90%86/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%86%85%E5%AD%98%E4%B8%8D%E8%B6%B3%E5%A4%84%E7%90%86/</guid><description>从缺页中断到 kswapd 后台回收再到 OOM Killer 的完整内存回收递进链条，揭示了 Linux 内存管理的层层兜底机制。</description><pubDate>Thu, 19 Jun 2025 09:00:00 GMT</pubDate></item><item><title>堆和栈的区别——不只是&quot;一个快一个慢</title><link>https://blog.zoloy.top/posts/%E5%A0%86%E5%92%8C%E6%A0%88%E7%9A%84%E5%8C%BA%E5%88%AB/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%A0%86%E5%92%8C%E6%A0%88%E7%9A%84%E5%8C%BA%E5%88%AB/</guid><description>从内存布局到分配原理全面对比堆与栈：栈由编译器自动管理高效有序，堆由程序员手动管理灵活但易碎片。</description><pubDate>Mon, 16 Jun 2025 09:00:00 GMT</pubDate></item><item><title>中断机制——从缺页中断到系统调用</title><link>https://blog.zoloy.top/posts/%E4%B8%AD%E6%96%AD%E6%9C%BA%E5%88%B6%E4%B8%8E%E7%BC%BA%E9%A1%B5%E4%B8%AD%E6%96%AD/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E4%B8%AD%E6%96%AD%E6%9C%BA%E5%88%B6%E4%B8%8E%E7%BC%BA%E9%A1%B5%E4%B8%AD%E6%96%AD/</guid><description>从缺页中断到系统调用，理解 CPU 如何通过中断向量表响应硬件事件和内部异常，实现多任务调度与内存管理。</description><pubDate>Sat, 14 Jun 2025 09:00:00 GMT</pubDate></item><item><title>select→poll→epoll——Linux IO多路复用的三代演进</title><link>https://blog.zoloy.top/posts/select-poll-epoll%E6%BC%94%E8%BF%9B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/select-poll-epoll%E6%BC%94%E8%BF%9B/</guid><description>Linux IO 多路复用三代演进：select 的位图局限、poll 的链表改进、epoll 的 O(1)事件通知与红黑树管理百万连接。</description><pubDate>Wed, 11 Jun 2025 09:00:00 GMT</pubDate></item><item><title>fork原理：进程创建的底层全链路</title><link>https://blog.zoloy.top/posts/fork%E5%8E%9F%E7%90%86/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/fork%E5%8E%9F%E7%90%86/</guid><description>fork 一次调用两次返回的底层原理：通过写时拷贝技术高效复制进程地址空间，避免物理内存的完全拷贝。</description><pubDate>Mon, 09 Jun 2025 09:00:00 GMT</pubDate></item><item><title>epoll的LT和ET模式</title><link>https://blog.zoloy.top/posts/epoll%E7%9A%84lt%E5%92%8Cet%E6%A8%A1%E5%BC%8F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/epoll%E7%9A%84lt%E5%92%8Cet%E6%A8%A1%E5%BC%8F/</guid><description>epoll 的 LT 和 ET 模式核心差异在于通知时机：LT 反复通知直到读完，ET 只通知一次，Netty 选 ET 配合非阻塞 IO 达到高性能。</description><pubDate>Fri, 06 Jun 2025 09:00:00 GMT</pubDate></item><item><title>brk与mmap详解：malloc底层内存分配的双引擎</title><link>https://blog.zoloy.top/posts/brk%E4%B8%8Emmap%E8%AF%A6%E8%A7%A3/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/brk%E4%B8%8Emmap%E8%AF%A6%E8%A7%A3/</guid><description>malloc 底层通过 brk 移动堆顶分配小块内存，通过 mmap 创建匿名映射分配大块内存，深刻理解双引擎对内存效率的影响。</description><pubDate>Wed, 04 Jun 2025 09:00:00 GMT</pubDate></item><item><title>责任链模式——从Servlet FilterChain到Spring Interceptor</title><link>https://blog.zoloy.top/posts/%E8%B4%A3%E4%BB%BB%E9%93%BE%E6%A8%A1%E5%BC%8F-servlet-filterchain/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E8%B4%A3%E4%BB%BB%E9%93%BE%E6%A8%A1%E5%BC%8F-servlet-filterchain/</guid><description>Tomcat FilterChain 用迭代加 pos 索引替代递归避免栈溢出，Spring Interceptor 逆序补偿保证执行对称性。</description><pubDate>Sun, 01 Jun 2025 09:00:00 GMT</pubDate></item><item><title>观察者模式——Spring事件驱动架构的基石</title><link>https://blog.zoloy.top/posts/%E8%A7%82%E5%AF%9F%E8%80%85%E6%A8%A1%E5%BC%8F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E8%A7%82%E5%AF%9F%E8%80%85%E6%A8%A1%E5%BC%8F/</guid><description>观察者模式将硬编码调用链解耦为发布订阅网络，配合事务监听器和异步执行构建灵活的事件驱动架构。</description><pubDate>Fri, 30 May 2025 09:00:00 GMT</pubDate></item><item><title>装饰器模式——Java IO为什么是一层套一层的洋葱？</title><link>https://blog.zoloy.top/posts/%E8%A3%85%E9%A5%B0%E5%99%A8%E6%A8%A1%E5%BC%8F-javaio/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E8%A3%85%E9%A5%B0%E5%99%A8%E6%A8%A1%E5%BC%8F-javaio/</guid><description>装饰器模式用组合替代继承实现功能叠加，Java IO 的洋葱模型用 N 加 M 个类覆盖 N 乘 M 种功能组合。</description><pubDate>Tue, 27 May 2025 09:00:00 GMT</pubDate></item><item><title>策略模式——Spring如何用Map注入消除if-else</title><link>https://blog.zoloy.top/posts/%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F-map%E6%B3%A8%E5%85%A5%E6%B6%88%E9%99%A4if-else/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E7%AD%96%E7%95%A5%E6%A8%A1%E5%BC%8F-map%E6%B3%A8%E5%85%A5%E6%B6%88%E9%99%A4if-else/</guid><description>Spring 通过@Autowired Map 注入收集所有策略实现，完全消除 if-else 分支，新增策略只需加 Component 类。</description><pubDate>Sun, 25 May 2025 09:00:00 GMT</pubDate></item><item><title>模板方法模式——JdbcTemplate如何把连接管理从业务代码中抽离</title><link>https://blog.zoloy.top/posts/%E6%A8%A1%E6%9D%BF%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8F-jdbctemplate/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E6%A8%A1%E6%9D%BF%E6%96%B9%E6%B3%95%E6%A8%A1%E5%BC%8F-jdbctemplate/</guid><description>父类固定流程骨架，子类实现可变步骤，JdbcTemplate 将连接管理与异常翻译抽离为模板，回调只需写 SQL。</description><pubDate>Fri, 23 May 2025 09:00:00 GMT</pubDate></item><item><title>建造者模式——复杂对象构建的优雅之道</title><link>https://blog.zoloy.top/posts/%E5%BB%BA%E9%80%A0%E8%80%85%E6%A8%A1%E5%BC%8F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%BB%BA%E9%80%A0%E8%80%85%E6%A8%A1%E5%BC%8F/</guid><description>建造者模式用链式调用替代多参构造器，将必填参数通过构造函数强制传入，可选参数通过 setter 设置。</description><pubDate>Tue, 20 May 2025 09:00:00 GMT</pubDate></item><item><title>原型模式——对象克隆的深浅之道</title><link>https://blog.zoloy.top/posts/%E5%8E%9F%E5%9E%8B%E6%A8%A1%E5%BC%8F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%8E%9F%E5%9E%8B%E6%A8%A1%E5%BC%8F/</guid><description>原型模式通过克隆已有对象避免昂贵的构造过程，重点理解 Java 中浅拷贝与深拷贝的本质区别及 Cloneable 的实现细节。</description><pubDate>Sun, 18 May 2025 09:00:00 GMT</pubDate></item><item><title>单例模式的5种写法——从饿汉到枚举的演进</title><link>https://blog.zoloy.top/posts/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F%E7%9A%845%E7%A7%8D%E5%86%99%E6%B3%95/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8F%E7%9A%845%E7%A7%8D%E5%86%99%E6%B3%95/</guid><description>从饿汉到枚举的五种单例写法演进：饿汉安全、DCL 巧妙、静态内部类优雅、枚举防反射，每种写法有其适用场景。</description><pubDate>Thu, 15 May 2025 09:00:00 GMT</pubDate></item><item><title>工厂模式——Spring FactoryBean如何封装复杂Bean的创建</title><link>https://blog.zoloy.top/posts/%E5%B7%A5%E5%8E%82%E6%A8%A1%E5%BC%8F-spring-factorybean/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%B7%A5%E5%8E%82%E6%A8%A1%E5%BC%8F-spring-factorybean/</guid><description>FactoryBean 将复杂 Bean 的创建逻辑封装到独立类中，getBean 返回产品而非工厂实例。</description><pubDate>Tue, 13 May 2025 09:00:00 GMT</pubDate></item><item><title>Spring事务——传播行为与@Transactional失效的6种场景</title><link>https://blog.zoloy.top/posts/spring%E4%BA%8B%E5%8A%A1%E4%BC%A0%E6%92%AD%E4%B8%8E%E5%A4%B1%E6%95%88/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/spring%E4%BA%8B%E5%8A%A1%E4%BC%A0%E6%92%AD%E4%B8%8E%E5%A4%B1%E6%95%88/</guid><description>梳理 Spring 事务七种传播行为与@Transactional 失效的六种场景——同类 this 调用绕过代理、非 public 方法、异常被吞、未配 rollbackFor 等，根因归结为调用未经过 AOP 代理。</description><pubDate>Sat, 10 May 2025 09:00:00 GMT</pubDate></item><item><title>Spring Boot自动装配——@SpringBootApplication背后的秘密</title><link>https://blog.zoloy.top/posts/springboot%E8%87%AA%E5%8A%A8%E8%A3%85%E9%85%8D%E5%8E%9F%E7%90%86/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/springboot%E8%87%AA%E5%8A%A8%E8%A3%85%E9%85%8D%E5%8E%9F%E7%90%86/</guid><description>拆解@SpringBootApplication 背后的自动装配全流程——@EnableAutoConfiguration 触发候选类加载，@Conditional 条件筛选约 150 个配置类，实现引入依赖即可用的约定优于配置。</description><pubDate>Thu, 08 May 2025 09:00:00 GMT</pubDate></item><item><title>Spring循环依赖——三级缓存的精妙设计</title><link>https://blog.zoloy.top/posts/spring-%E5%BE%AA%E7%8E%AF%E4%BE%9D%E8%B5%96-%E4%B8%89%E7%BA%A7%E7%BC%93%E5%AD%98/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/spring-%E5%BE%AA%E7%8E%AF%E4%BE%9D%E8%B5%96-%E4%B8%89%E7%BA%A7%E7%BC%93%E5%AD%98/</guid><description>逐层剖析 Spring 三级缓存解决循环依赖的精妙设计——一级存成品、二级暴露半成品打破循环、三级用 ObjectFactory 延迟生成代理保证 AOP 代理唯一性，以及构造器注入为何无解。</description><pubDate>Mon, 05 May 2025 09:00:00 GMT</pubDate></item><item><title>Spring IoC容器——BeanDefinition到Bean实例的完整旅程</title><link>https://blog.zoloy.top/posts/spring-ioc%E5%AE%B9%E5%99%A8-bean%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/spring-ioc%E5%AE%B9%E5%99%A8-bean%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/</guid><description>从 BeanDefinition 到 Bean 实例的完整旅程——解析配置生成元数据、BFPP 修改配方、反射实例化、依赖注入、BPP 链处理与 AOP 代理生成，理清 BFPP 与 BPP 的阶段性分离设计。</description><pubDate>Sat, 03 May 2025 09:00:00 GMT</pubDate></item><item><title>Spring AOP——JDK动态代理和CGLIB的核心区别</title><link>https://blog.zoloy.top/posts/spring-aop-jdk%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86-vs-cglib/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/spring-aop-jdk%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86-vs-cglib/</guid><description>对比 JDK 动态代理与 CGLIB 的底层机制——JDK 依赖接口+反射调用，CGLIB 通过子类+FastClass 索引实现非反射调用，Spring Boot 2.x 为何强制默认 CGLIB。</description><pubDate>Wed, 30 Apr 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ延时消息的底层实现</title><link>https://blog.zoloy.top/posts/rocketmq%E5%BB%B6%E6%97%B6%E6%B6%88%E6%81%AF%E7%9A%84%E5%BA%95%E5%B1%82%E5%AE%9E%E7%8E%B0/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq%E5%BB%B6%E6%97%B6%E6%B6%88%E6%81%AF%E7%9A%84%E5%BA%95%E5%B1%82%E5%AE%9E%E7%8E%B0/</guid><description>揭开 RocketMQ 延时消息底层实现——Broker 拦截后存入 SCHEDULE_TOPIC_XXXX 内部 Topic，ScheduleMessageService 每秒轮询到期消息恢复投递，引起约 1 秒精度偏差。</description><pubDate>Mon, 28 Apr 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ 顺序消费：从队列路由到线程绑定的完整链路</title><link>https://blog.zoloy.top/posts/rocketmq-%E9%A1%BA%E5%BA%8F%E6%B6%88%E8%B4%B9/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq-%E9%A1%BA%E5%BA%8F%E6%B6%88%E8%B4%B9/</guid><description>梳理 RocketMQ 顺序消费的三环接力——生产者取模路由到同一队列、Broker FIFO 存储、Consumer 分布式锁+单线程绑定，以及 SUSPEND_CURRENT_QUEUE_A_MOMENT 的可靠性设计。</description><pubDate>Fri, 25 Apr 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ 消息领域模型：Topic、Tag、MessageQueue、Group 与 Offset 的层次设计</title><link>https://blog.zoloy.top/posts/rocketmq-%E6%B6%88%E6%81%AF%E9%A2%86%E5%9F%9F%E6%A8%A1%E5%9E%8B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq-%E6%B6%88%E6%81%AF%E9%A2%86%E5%9F%9F%E6%A8%A1%E5%9E%8B/</guid><description>逐层拆解 RocketMQ 五层领域模型——Topic 命名空间、Tag 二级分类、MessageQueue 物理队列、ConsumerGroup 逻辑分组与 Offset 64 位指针，纠正七个常见误解。</description><pubDate>Wed, 23 Apr 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ 消息过滤：Tag 过滤、SQL92 表达式与过滤原理</title><link>https://blog.zoloy.top/posts/rocketmq-%E6%B6%88%E6%81%AF%E8%BF%87%E6%BB%A4/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq-%E6%B6%88%E6%81%AF%E8%BF%87%E6%BB%A4/</guid><description>解析 RocketMQ 三级过滤漏斗——Tag 哈希在 ConsumeQueue 层 O(1)过滤不读磁盘，SQL92 表达式需读 CommitLog 但有灵活性，消费端二次过滤作为最后防线防哈希冲突。</description><pubDate>Sun, 20 Apr 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ 消息积压处理：监控、流控、扩容与 DLQ 的全链路方案</title><link>https://blog.zoloy.top/posts/rocketmq-%E6%B6%88%E6%81%AF%E7%A7%AF%E5%8E%8B%E5%A4%84%E7%90%86/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq-%E6%B6%88%E6%81%AF%E7%A7%AF%E5%8E%8B%E5%A4%84%E7%90%86/</guid><description>消息积压从发现到消除的全链路方案——监控指标与告警阈值、生产者流控止血、消费端扩缩容与批量优化、DLQ 兜底毒消息，以及基于 Lag 的 K8s 自动弹性伸缩。</description><pubDate>Fri, 18 Apr 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ 消息幂等性：为什么 MessageId 不可靠，以及如何真正去重</title><link>https://blog.zoloy.top/posts/rocketmq-%E6%B6%88%E6%81%AF%E5%B9%82%E7%AD%89%E6%80%A7/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq-%E6%B6%88%E6%81%AF%E5%B9%82%E7%AD%89%E6%80%A7/</guid><description>剖析 RocketMQ 消息重复的三种来源与为什么 MessageId 不可靠，对比四种幂等方案——数据库唯一索引、Redis SETNX、业务状态机与 Broker 端去重，强调消费端是最后防线。</description><pubDate>Wed, 16 Apr 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ死信队列——16次重试后的最终兜底</title><link>https://blog.zoloy.top/posts/rocketmq-%E6%AD%BB%E4%BF%A1%E9%98%9F%E5%88%97dlq/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq-%E6%AD%BB%E4%BF%A1%E9%98%9F%E5%88%97dlq/</guid><description>解析 RocketMQ 死信队列作为 16 次重试后的最终防线——延迟递增重试策略防止资源浪费，DLQ 隔离毒消息保障正常流，人工介入修复后手动回放。</description><pubDate>Sun, 13 Apr 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ架构——为什么CommitLog所有Topic共用一份文件</title><link>https://blog.zoloy.top/posts/rocketmq-%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1-commitlog/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq-%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1-commitlog/</guid><description>剖析 RocketMQ 三个核心架构取舍——CommitLog 单文件顺序追加实现极致写性能，ConsumeQueue 固定 20 字节二级索引换一次随机读，NameServer 无主设计换零运维。</description><pubDate>Fri, 11 Apr 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ 延时消息原理：18 级延时与 SCHEDULE_TOPIC_XXXX 揭秘</title><link>https://blog.zoloy.top/posts/rocketmq-%E5%BB%B6%E6%97%B6%E6%B6%88%E6%81%AF%E5%8E%9F%E7%90%86/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq-%E5%BB%B6%E6%97%B6%E6%B6%88%E6%81%AF%E5%8E%9F%E7%90%86/</guid><description>拆解 RocketMQ 18 级延时消息的完整生命周期——从写入 SCHEDULE_TOPIC_XXXX 按 delayLevel 分 Queue，到 ScheduleMessageService 定时扫描投递，展示时间分桶替代独立计时的架构取舍。</description><pubDate>Tue, 08 Apr 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ 刷盘机制：同步刷盘、异步刷盘与顺序写磁盘</title><link>https://blog.zoloy.top/posts/rocketmq-%E5%88%B7%E7%9B%98%E6%9C%BA%E5%88%B6/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq-%E5%88%B7%E7%9B%98%E6%9C%BA%E5%88%B6/</guid><description>详解 RocketMQ 同步刷盘与异步刷盘的区别，深入 mmap 内存映射文件与顺序写磁盘如何实现高吞吐，以及 GroupCommit 组提交优化同步刷盘性能。</description><pubDate>Sun, 06 Apr 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ事务消息——Half Message的两阶段提交</title><link>https://blog.zoloy.top/posts/rocketmq-%E4%BA%8B%E5%8A%A1%E6%B6%88%E6%81%AF-half-message/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq-%E4%BA%8B%E5%8A%A1%E6%B6%88%E6%81%AF-half-message/</guid><description>拆解 RocketMQ 事务消息的 Half Message 二阶段提交机制——消息先写 RMQ_SYS_TRANS_HALF_TOPIC 不可见，本地事务执行后 Commit/Rollback，回查机制兜底网络丢包。</description><pubDate>Thu, 03 Apr 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ vs Kafka：性能、功能与适用场景的全维度对比</title><link>https://blog.zoloy.top/posts/rocketmq-vs-kafka%E5%AF%B9%E6%AF%94/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq-vs-kafka%E5%AF%B9%E6%AF%94/</guid><description>全维度对比 RocketMQ 与 Kafka 的性能、存储模型、功能矩阵与生态差异——为什么 Kafka 怕多 Topic，以及 sendfile 与 mmap 零拷贝实现的不同取舍。</description><pubDate>Tue, 01 Apr 2025 09:00:00 GMT</pubDate></item><item><title>RocketMQ ConsumeQueue 索引：20 字节条目如何精准定位消息</title><link>https://blog.zoloy.top/posts/rocketmq-consumequeue%E7%B4%A2%E5%BC%95/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/rocketmq-consumequeue%E7%B4%A2%E5%BC%95/</guid><description>深入解析 ConsumeQueue 固定 20 字节索引条目的设计精妙——8 字节 CommitLog 偏移+4 字节大小+8 字节 Tag 哈希，实现 O(1)消息定位的二级索引体系。</description><pubDate>Sat, 29 Mar 2025 09:00:00 GMT</pubDate></item><item><title>缓存设计——穿透、击穿、雪崩的完整防御体系</title><link>https://blog.zoloy.top/posts/%E7%BC%93%E5%AD%98%E8%AE%BE%E8%AE%A1-%E7%A9%BF%E9%80%8F-%E5%87%BB%E7%A9%BF-%E9%9B%AA%E5%B4%A9/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E7%BC%93%E5%AD%98%E8%AE%BE%E8%AE%A1-%E7%A9%BF%E9%80%8F-%E5%87%BB%E7%A9%BF-%E9%9B%AA%E5%B4%A9/</guid><description>缓存穿透用布隆过滤器拦截非法 key，击穿用互斥锁保证单线程回源，雪崩用 TTL 随机化分散过期时间。</description><pubDate>Thu, 27 Mar 2025 09:00:00 GMT</pubDate></item><item><title>布隆过滤器的双重哈希技巧</title><link>https://blog.zoloy.top/posts/%E5%B8%83%E9%9A%86%E8%BF%87%E6%BB%A4%E5%99%A8%E7%9A%84%E5%8F%8C%E9%87%8D%E5%93%88%E5%B8%8C%E6%8A%80%E5%B7%A7/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%B8%83%E9%9A%86%E8%BF%87%E6%BB%A4%E5%99%A8%E7%9A%84%E5%8F%8C%E9%87%8D%E5%93%88%E5%B8%8C%E6%8A%80%E5%B7%A7/</guid><description>通过一次 MurmurHash3 调用的高低 32 位做线性组合，模拟 k 个独立哈希函数的效果。</description><pubDate>Mon, 24 Mar 2025 09:00:00 GMT</pubDate></item><item><title>布隆过滤器 vs 布谷鸟过滤器——为什么布隆过滤器不支持删除？</title><link>https://blog.zoloy.top/posts/%E5%B8%83%E9%9A%86%E8%BF%87%E6%BB%A4%E5%99%A8-%E5%B8%83%E8%B0%B7%E9%B8%9F%E8%BF%87%E6%BB%A4%E5%99%A8/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%B8%83%E9%9A%86%E8%BF%87%E6%BB%A4%E5%99%A8-%E5%B8%83%E8%B0%B7%E9%B8%9F%E8%BF%87%E6%BB%A4%E5%99%A8/</guid><description>布隆过滤器位数组共享导致不可删除，布谷鸟过滤器用 XOR 可逆指纹实现双向定位与删除。</description><pubDate>Sat, 22 Mar 2025 09:00:00 GMT</pubDate></item><item><title>ZipList连锁更新到listpack——Redis压缩列表的演进</title><link>https://blog.zoloy.top/posts/ziplist%E8%BF%9E%E9%94%81%E6%9B%B4%E6%96%B0%E4%B8%8Elistpack/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/ziplist%E8%BF%9E%E9%94%81%E6%9B%B4%E6%96%B0%E4%B8%8Elistpack/</guid><description>ZipList 的连锁更新问题根因在于变长编码依赖前驱节点，listpack 通过自描述编码彻底根除这一设计缺陷。</description><pubDate>Wed, 19 Mar 2025 09:00:00 GMT</pubDate></item><item><title>Redis渐进式rehash</title><link>https://blog.zoloy.top/posts/redis%E6%B8%90%E8%BF%9B%E5%BC%8Frehash/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redis%E6%B8%90%E8%BF%9B%E5%BC%8Frehash/</guid><description>揭示 Redis 如何通过 ht[0]/ht[1]双表+rehashidx 游标，将 O(n)全量迁移拆为 n 次 O(1)微步，在每次读写命令中顺带推进，配合 serverCron 毫秒级时间预算兜底。</description><pubDate>Mon, 17 Mar 2025 09:00:00 GMT</pubDate></item><item><title>Redisson分布式锁的Lua脚本实现</title><link>https://blog.zoloy.top/posts/redisson%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81%E7%9A%84lua%E8%84%9A%E6%9C%AC%E5%AE%9E%E7%8E%B0/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redisson%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81%E7%9A%84lua%E8%84%9A%E6%9C%AC%E5%AE%9E%E7%8E%B0/</guid><description>剖析 Redisson 如何用一段 Lua 脚本解决手写 SET NX EX 的三个经典坑——锁超时误删、不可重入与释放原子性，以及 WatchDog 自动续期机制。</description><pubDate>Fri, 14 Mar 2025 09:00:00 GMT</pubDate></item><item><title>Redis 缓存更新策略三大模式：Cache Aside、Read/Write Through、Write Back</title><link>https://blog.zoloy.top/posts/redis-%E7%BC%93%E5%AD%98%E6%9B%B4%E6%96%B0%E7%AD%96%E7%95%A5%E4%B8%89%E5%A4%A7%E6%A8%A1%E5%BC%8F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redis-%E7%BC%93%E5%AD%98%E6%9B%B4%E6%96%B0%E7%AD%96%E7%95%A5%E4%B8%89%E5%A4%A7%E6%A8%A1%E5%BC%8F/</guid><description>对比 Cache Aside、Read/Write Through 与 Write Back 三种缓存更新模式的核心原理、一致性保证和适用场景，给出生产环境的选型决策树。</description><pubDate>Wed, 12 Mar 2025 09:00:00 GMT</pubDate></item><item><title>Redis 淘汰策略详解：LRU 与 LFU</title><link>https://blog.zoloy.top/posts/redis-%E6%B7%98%E6%B1%B0%E7%AD%96%E7%95%A5%E8%AF%A6%E8%A7%A3lru-lfu/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redis-%E6%B7%98%E6%B1%B0%E7%AD%96%E7%95%A5%E8%AF%A6%E8%A7%A3lru-lfu/</guid><description>对比 Redis 八种内存淘汰策略，重点剖析近似 LRU 随机采样算法与 LFU 对数计数器+时间衰减的精妙设计，以及三者关键参数调优指南。</description><pubDate>Mon, 10 Mar 2025 09:00:00 GMT</pubDate></item><item><title>Redis 大 key 处理：定义、排查与删除的完整指南</title><link>https://blog.zoloy.top/posts/redis-%E5%A4%A7key%E5%A4%84%E7%90%86/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redis-%E5%A4%A7key%E5%A4%84%E7%90%86/</guid><description>完整指南——从大 key 的定义、排查工具到安全删除，涵盖 UNLINK 异步删除与各数据类型分批删除的最佳实践。</description><pubDate>Fri, 07 Mar 2025 09:00:00 GMT</pubDate></item><item><title>Redis Sentinel选主——三轮打分机制详解</title><link>https://blog.zoloy.top/posts/redis-%E5%93%A8%E5%85%B5%E9%80%89%E4%B8%BB/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redis-%E5%93%A8%E5%85%B5%E9%80%89%E4%B8%BB/</guid><description>详解 Redis Sentinel 故障转移全流程，包括主观/客观下线判定、Raft 风格 Leader 选举与三轮打分选主机制，以及 min-slaves-to-write 脑裂防护。</description><pubDate>Wed, 05 Mar 2025 09:00:00 GMT</pubDate></item><item><title>Redis quicklist 详解：双向链表 + listpack 的混合结构</title><link>https://blog.zoloy.top/posts/redis-quicklist%E8%AF%A6%E8%A7%A3/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redis-quicklist%E8%AF%A6%E8%A7%A3/</guid><description>解析 quicklist 双向链表+ziplist/listpack 混合结构，如何兼顾链表快速头尾操作与压缩列表低指针开销，并将连锁更新控制在一个节点范围内。</description><pubDate>Sun, 02 Mar 2025 09:00:00 GMT</pubDate></item><item><title>Redis jemalloc 内存分配器：红黑树、线程缓存与 size class</title><link>https://blog.zoloy.top/posts/redis-jemalloc%E5%86%85%E5%AD%98%E5%88%86%E9%85%8D%E5%99%A8/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redis-jemalloc%E5%86%85%E5%AD%98%E5%88%86%E9%85%8D%E5%99%A8/</guid><description>详解 Redis 默认内存分配器 jemalloc 的四层架构——tcache 线程缓存、细粒度 size class、红黑树 extent 管理与延迟回收如何实现低碎片率。</description><pubDate>Fri, 28 Feb 2025 09:00:00 GMT</pubDate></item><item><title>Redis Stream——持久化的消息队列新选择</title><link>https://blog.zoloy.top/posts/redis-stream%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redis-stream%E6%B6%88%E6%81%AF%E9%98%9F%E5%88%97/</guid><description>介绍 Redis Stream 消息队列——支持消费者组、ACK 确认与消息持久化，填补 List 和 Pub/Sub 在轻量级可靠消息场景的空白。</description><pubDate>Tue, 25 Feb 2025 09:00:00 GMT</pubDate></item><item><title>Redis SDS 与 embstr 的 44 字节阈值：从 sdshdr 到 jemalloc 分配链</title><link>https://blog.zoloy.top/posts/redis-sds%E4%B8%8Eembstr%E7%9A%8444%E5%AD%97%E8%8A%82%E9%98%88%E5%80%BC/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redis-sds%E4%B8%8Eembstr%E7%9A%8444%E5%AD%97%E8%8A%82%E9%98%88%E5%80%BC/</guid><description>从 SDS 五种头类型到 RedisObject，完整推导 embstr 的 44 字节阈值——如何精确填满 jemalloc 64 字节 bucket，实现一次 malloc 零指针开销。</description><pubDate>Sun, 23 Feb 2025 09:00:00 GMT</pubDate></item><item><title>Redis RDB和AOF持久化——bgrewriteaof子进程如何不丢数据</title><link>https://blog.zoloy.top/posts/redis-rdb-aof%E6%8C%81%E4%B9%85%E5%8C%96/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redis-rdb-aof%E6%8C%81%E4%B9%85%E5%8C%96/</guid><description>对比 Redis 三种持久化机制——RDB 快照、AOF 写后日志与混合持久化，解析 bgrewriteaof 子进程如何通过双缓冲区不丢数据。</description><pubDate>Thu, 20 Feb 2025 09:00:00 GMT</pubDate></item><item><title>Redis GEO 地理位置：GeoHash 编码与 Sorted Set 的优雅结合</title><link>https://blog.zoloy.top/posts/redis-geo%E5%9C%B0%E7%90%86%E4%BD%8D%E7%BD%AE/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redis-geo%E5%9C%B0%E7%90%86%E4%BD%8D%E7%BD%AE/</guid><description>揭示 Redis GEO 基于 Sorted Set 的实现原理——GeoHash 将二维经纬度编码为 52 位整数，利用 ZRANGEBYSCORE 实现高效地理位置范围查询。</description><pubDate>Tue, 18 Feb 2025 09:00:00 GMT</pubDate></item><item><title>Redis Cluster无感扩容——MOVED和ASK重定向</title><link>https://blog.zoloy.top/posts/redis-cluster-%E6%97%A0%E6%84%9F%E6%89%A9%E5%AE%B9/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/redis-cluster-%E6%97%A0%E6%84%9F%E6%89%A9%E5%AE%B9/</guid><description>剖析 Redis Cluster 在线扩容核心机制——slot 粒度的在线迁移与 MOVED/ASK 重定向，实现业务无感知的集群水平扩展。</description><pubDate>Sat, 15 Feb 2025 09:00:00 GMT</pubDate></item><item><title>MySQL 自适应哈希索引（AHI）：BufferPool 内的自动加速器</title><link>https://blog.zoloy.top/posts/mysql%E8%87%AA%E9%80%82%E5%BA%94%E5%93%88%E5%B8%8C%E7%B4%A2%E5%BC%95ahi/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql%E8%87%AA%E9%80%82%E5%BA%94%E5%93%88%E5%B8%8C%E7%B4%A2%E5%BC%95ahi/</guid><description>AHI 在 BufferPool 中自动构建哈希表加速高频等值查询，键映射到叶子页而非行，范围查询不触发，高并发写入场景建议关闭</description><pubDate>Thu, 13 Feb 2025 09:00:00 GMT</pubDate></item><item><title>MySQL 索引下推（ICP）：让二级索引在引擎层就完成过滤</title><link>https://blog.zoloy.top/posts/mysql%E7%B4%A2%E5%BC%95%E4%B8%8B%E6%8E%A8icp/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql%E7%B4%A2%E5%BC%95%E4%B8%8B%E6%8E%A8icp/</guid><description>ICP 将 WHERE 条件中索引列判断下推到存储引擎层减少回表，覆盖索引自动跳过 ICP，与 MRR 配合先过滤再排序批量回表</description><pubDate>Mon, 10 Feb 2025 09:00:00 GMT</pubDate></item><item><title>MySQL并行回放MTS</title><link>https://blog.zoloy.top/posts/mysql%E5%B9%B6%E8%A1%8C%E5%9B%9E%E6%94%BEmts/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql%E5%B9%B6%E8%A1%8C%E5%9B%9E%E6%94%BEmts/</guid><description>MTS 多线程并行回放解决主从延迟，LOGICAL_CLOCK 基于事务提交时间戳判依赖，单库场景优于仅按 Schema 并行的 DATABASE 模式</description><pubDate>Sat, 08 Feb 2025 09:00:00 GMT</pubDate></item><item><title>MySQL 存储引擎架构五层模型：表空间→段→区→页→行</title><link>https://blog.zoloy.top/posts/mysql%E5%AD%98%E5%82%A8%E5%BC%95%E6%93%8E%E4%BA%94%E5%B1%82%E6%A8%A1%E5%9E%8B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql%E5%AD%98%E5%82%A8%E5%BC%95%E6%93%8E%E4%BA%94%E5%B1%82%E6%A8%A1%E5%9E%8B/</guid><description>InnoDB 五层存储架构表空间段区页行，页为 16KB 最小 IO 单元含 Page Directory 二分查找，区为 1MB 连续空间分配的基本单位</description><pubDate>Wed, 05 Feb 2025 09:00:00 GMT</pubDate></item><item><title>MySQL半同步复制——主库宕机后数据不丢失的保障</title><link>https://blog.zoloy.top/posts/mysql%E5%8D%8A%E5%90%8C%E6%AD%A5%E5%A4%8D%E5%88%B6/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql%E5%8D%8A%E5%90%8C%E6%AD%A5%E5%A4%8D%E5%88%B6/</guid><description>半同步复制 after_sync 模式主库等至少一个从库 ACK 写入 relay log 后才返回成功，超时降级异步防阻塞，主库宕机不丢已确认数据</description><pubDate>Mon, 03 Feb 2025 09:00:00 GMT</pubDate></item><item><title>MySQL两阶段提交与崩溃恢复</title><link>https://blog.zoloy.top/posts/mysql%E4%B8%A4%E9%98%B6%E6%AE%B5%E6%8F%90%E4%BA%A4%E4%B8%8E%E5%B4%A9%E6%BA%83%E6%81%A2%E5%A4%8D/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql%E4%B8%A4%E9%98%B6%E6%AE%B5%E6%8F%90%E4%BA%A4%E4%B8%8E%E5%B4%A9%E6%BA%83%E6%81%A2%E5%A4%8D/</guid><description>MySQL 内部 2PC 协调 redo 与 binlog 双日志一致性，binlog 完整则提交否则回滚，XID 贯穿两端，组提交多事务合并一次 fsync</description><pubDate>Sat, 01 Feb 2025 09:00:00 GMT</pubDate></item><item><title>MySQL联合索引——最左前缀与索引下推</title><link>https://blog.zoloy.top/posts/mysql-%E8%81%94%E5%90%88%E7%B4%A2%E5%BC%95-%E6%9C%80%E5%B7%A6%E5%89%8D%E7%BC%80/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql-%E8%81%94%E5%90%88%E7%B4%A2%E5%BC%95-%E6%9C%80%E5%B7%A6%E5%89%8D%E7%BC%80/</guid><description>联合索引最左前缀是 B+树多字段排序的物理结果非人为限制，范围查询后列失效因跨值后不再全局有序，ICP 可减少回表</description><pubDate>Wed, 29 Jan 2025 09:00:00 GMT</pubDate></item><item><title>MySQL深分页优化——LIMIT 100000,10为什么这么慢</title><link>https://blog.zoloy.top/posts/mysql-%E6%B7%B1%E5%88%86%E9%A1%B5%E4%BC%98%E5%8C%96/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql-%E6%B7%B1%E5%88%86%E9%A1%B5%E4%BC%98%E5%8C%96/</guid><description>深分页慢因 offset 大导致大量回表 IO，延迟关联让扫描在索引层完成免回表，游标分页用索引定位替代 offset 实现恒定性能</description><pubDate>Mon, 27 Jan 2025 09:00:00 GMT</pubDate></item><item><title>MySQL临键锁的退化规则</title><link>https://blog.zoloy.top/posts/mysql-%E4%B8%B4%E9%94%AE%E9%94%81%E9%80%80%E5%8C%96/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql-%E4%B8%B4%E9%94%AE%E9%94%81%E9%80%80%E5%8C%96/</guid><description>InnoDB 行锁三件套：临键锁等值查询加唯一索引时触发退化，记录存在变记录锁释放间隙，不存在变间隙锁防幻插</description><pubDate>Fri, 24 Jan 2025 09:00:00 GMT</pubDate></item><item><title>MySQL JOIN优化——NLJ、BNL、BKA与索引失效全景</title><link>https://blog.zoloy.top/posts/mysql-join%E4%BC%98%E5%8C%96-nlj-bka/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql-join%E4%BC%98%E5%8C%96-nlj-bka/</guid><description>JOIN 四种算法从 Simple NLJ 到 BKA 演进，被驱动表 JOIN 列加索引是小表驱动大表前提，六种常见索引失效场景需规避</description><pubDate>Wed, 22 Jan 2025 09:00:00 GMT</pubDate></item><item><title>MySQL Change Buffer：非唯一二级索引的写入加速器</title><link>https://blog.zoloy.top/posts/mysql-change-buffer/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql-change-buffer/</guid><description>Change Buffer 缓存非唯一二级索引变更将随机 IO 转顺序写，仅限于非唯一索引因唯一性检查必须读索引页，写后立即查询是反模式</description><pubDate>Sun, 19 Jan 2025 09:00:00 GMT</pubDate></item><item><title>MySQL Undo Log 详解：回滚段、MVCC 版本链与长事务之殇</title><link>https://blog.zoloy.top/posts/mysql-undo-log%E8%AF%A6%E8%A7%A3/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql-undo-log%E8%AF%A6%E8%A7%A3/</guid><description>Undo Log 双重使命：事务回滚与 MVCC 版本链构建，长事务导致 undo 膨胀根因是活跃 ReadView 阻止 purge 线程清理旧版本</description><pubDate>Fri, 17 Jan 2025 09:00:00 GMT</pubDate></item><item><title>MySQL MVCC——ReadView的四个字段如何决定可见性</title><link>https://blog.zoloy.top/posts/mysql-mvcc-readview/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql-mvcc-readview/</guid><description>ReadView 四字段可见性判断算法：遍历 undo 版本链比较 trx_id 与 m_ids 边界，RC 每次重建 ReadView，RR 复用至事务结束</description><pubDate>Tue, 14 Jan 2025 09:00:00 GMT</pubDate></item><item><title>MySQL MHA 故障切换与脑裂防护：从 STONITH 到 VIP 切换</title><link>https://blog.zoloy.top/posts/mysql-mha%E6%95%85%E9%9A%9C%E5%88%87%E6%8D%A2%E4%B8%8E%E8%84%91%E8%A3%82%E9%98%B2%E6%8A%A4/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql-mha%E6%95%85%E9%9A%9C%E5%88%87%E6%8D%A2%E4%B8%8E%E8%84%91%E8%A3%82%E9%98%B2%E6%8A%A4/</guid><description>MHA 故障切换五阶段时间线、STONITH 物理断电防脑裂、VIP 漂移三层防护，secondary_check_script 多路径验证防误切</description><pubDate>Sun, 12 Jan 2025 09:00:00 GMT</pubDate></item><item><title>MySQL GTID——为什么比binlog position更可靠</title><link>https://blog.zoloy.top/posts/mysql-gtid%E5%A4%8D%E5%88%B6/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql-gtid%E5%A4%8D%E5%88%B6/</guid><description>GTID 用 UUID 加事务序号作逻辑标识替代物理偏移，从库自动求差集续接，主从切换无需手动指定 binlog 文件和位置</description><pubDate>Thu, 09 Jan 2025 09:00:00 GMT</pubDate></item><item><title>MySQL EXPLAIN——执行计划每个字段的完整解读</title><link>https://blog.zoloy.top/posts/mysql-explain-%E6%89%A7%E8%A1%8C%E8%AE%A1%E5%88%92/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql-explain-%E6%89%A7%E8%A1%8C%E8%AE%A1%E5%88%92/</guid><description>EXPLAIN 字段解读：type 访问类型从 const 到 ALL 逐级变差，key 看实际使用的索引，Extra 中 Using filesort 需优先优化</description><pubDate>Tue, 07 Jan 2025 09:00:00 GMT</pubDate></item><item><title>MySQL InnoDB的BufferPool——分区LRU与Double Write</title><link>https://blog.zoloy.top/posts/mysql-bufferpool-doublewrite/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mysql-bufferpool-doublewrite/</guid><description>InnoDB 分区 LRU 防全表扫描污染 young 区热数据，Double Write 先顺序写 dblwr 备份再离散写数据文件防止页断裂</description><pubDate>Sat, 04 Jan 2025 09:00:00 GMT</pubDate></item><item><title>volatile的内存屏障——为什么DCL必须volatile</title><link>https://blog.zoloy.top/posts/volatile-%E5%86%85%E5%AD%98%E5%B1%8F%E9%9A%9C/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/volatile-%E5%86%85%E5%AD%98%E5%B1%8F%E9%9A%9C/</guid><description>volatile 通过内存屏障保证可见性与有序性，禁止指令重排序是 DCL 安全实现的关键，深入理解 StoreLoad 等四大屏障。</description><pubDate>Thu, 02 Jan 2025 09:00:00 GMT</pubDate></item><item><title>Unsafe类——JUC所有无锁结构的原子操作基石</title><link>https://blog.zoloy.top/posts/unsafe%E7%B1%BB-juc%E5%9F%BA%E7%9F%B3/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/unsafe%E7%B1%BB-juc%E5%9F%BA%E7%9F%B3/</guid><description>Unsafe 提供 CAS 原子操作、内存屏障和直接内存访问三类底层能力，是 JUC 所有无锁并发结构的基石。</description><pubDate>Mon, 30 Dec 2024 09:00:00 GMT</pubDate></item><item><title>TransmittableThreadLocal：跨线程池的上下文传递</title><link>https://blog.zoloy.top/posts/transmittablethreadlocal/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/transmittablethreadlocal/</guid><description>阿里巴巴 TTL 通过装饰任务实现线程池场景下的上下文无损传递，解决 ThreadLocal 和 InheritableThreadLocal 的线程复用污染问题。</description><pubDate>Sat, 28 Dec 2024 09:00:00 GMT</pubDate></item><item><title>ThreadLocal内存泄漏的完整链路</title><link>https://blog.zoloy.top/posts/threadlocal%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/threadlocal%E5%86%85%E5%AD%98%E6%B3%84%E6%BC%8F/</guid><description>ThreadLocal 的弱引用 key 被 GC 回收后 value 仍无法释放，详解内存泄漏完整链路及 get/set/remove 的过期清理机制。</description><pubDate>Thu, 26 Dec 2024 09:00:00 GMT</pubDate></item><item><title>ScheduledThreadPoolExecutor：定时任务调度的正确打开方式</title><link>https://blog.zoloy.top/posts/scheduledthreadpoolexecutor/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/scheduledthreadpoolexecutor/</guid><description>分析 Timer 单线程设计的三个致命缺陷，对比 ScheduledThreadPoolExecutor 基于 DelayedWorkQueue 最小堆的多线程调度架构，以及 fixed-rate 与 fixed-delay 两种模式的核心区别。</description><pubDate>Mon, 23 Dec 2024 09:00:00 GMT</pubDate></item><item><title>MDC的ThreadLocal泄漏与ScopedValue</title><link>https://blog.zoloy.top/posts/mdc%E7%9A%84threadlocal%E6%B3%84%E6%BC%8F%E4%B8%8Escopedvalue/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/mdc%E7%9A%84threadlocal%E6%B3%84%E6%BC%8F%E4%B8%8Escopedvalue/</guid><description>MDC 底层双 ThreadLocal 缓存设计原理，虚拟线程下 ThreadLocal 强引用 Value 导致泄漏，ScopedValue 作用域绑定自动释放</description><pubDate>Sat, 21 Dec 2024 09:00:00 GMT</pubDate></item><item><title>LongAdder vs AtomicLong——高并发下的Cell分槽与伪共享</title><link>https://blog.zoloy.top/posts/longadder-atomiclong-contended/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/longadder-atomiclong-contended/</guid><description>LongAdder 通过 Cell 数组分槽降低 CAS 竞争，@Contended 消除伪共享保证分槽独立性，以 sum()最终一致性换高并发写入性能</description><pubDate>Wed, 18 Dec 2024 09:00:00 GMT</pubDate></item><item><title>Java线程池——execute()为什么入队后要做二次检查？</title><link>https://blog.zoloy.top/posts/java%E7%BA%BF%E7%A8%8B%E6%B1%A0-execute%E4%BA%8C%E6%AC%A1%E6%A3%80%E6%9F%A5/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/java%E7%BA%BF%E7%A8%8B%E6%B1%A0-execute%E4%BA%8C%E6%AC%A1%E6%A3%80%E6%9F%A5/</guid><description>线程池 execute()入队后二次检查：防无线程消费队列与 shutdown 时任务悬空，保证竞态场景下任务语义一致</description><pubDate>Mon, 16 Dec 2024 09:00:00 GMT</pubDate></item><item><title>ForkJoinPool分治并行：工作窃取与双端队列</title><link>https://blog.zoloy.top/posts/forkjoinpool%E5%88%86%E6%B2%BB%E5%B9%B6%E8%A1%8C/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/forkjoinpool%E5%88%86%E6%B2%BB%E5%B9%B6%E8%A1%8C/</guid><description>ForkJoinPool 用不对称双端队列实现工作窃取：自身 LIFO 取最新 Fork 保留缓存局部性，偷取者 FIFO 从栈底取大粒度任务实现负载均衡。</description><pubDate>Fri, 13 Dec 2024 09:00:00 GMT</pubDate></item><item><title>CountDownLatch、CyclicBarrier、Semaphore——三大并发工具辨析</title><link>https://blog.zoloy.top/posts/countdownlatch-cyclicbarrier-semaphore/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/countdownlatch-cyclicbarrier-semaphore/</guid><description>CountDownLatch 一次性倒计数适合主等子，CyclicBarrier 可重置栅栏适合多阶段同步，Semaphore 控制并发数适合限流与连接池。</description><pubDate>Wed, 11 Dec 2024 09:00:00 GMT</pubDate></item><item><title>CompletableFuture——异步编程的链式编排</title><link>https://blog.zoloy.top/posts/completablefuture%E5%BC%82%E6%AD%A5%E7%BC%96%E7%A8%8B/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/completablefuture%E5%BC%82%E6%AD%A5%E7%BC%96%E7%A8%8B/</guid><description>CompletableFuture 用 thenApply/thenCombine 链式编排异步任务，但默认共用 ForkJoinPool.commonPool，IO 密集任务须自定义线程池避免阻塞共享资源。</description><pubDate>Sun, 08 Dec 2024 09:00:00 GMT</pubDate></item><item><title>AQS——JUC所有锁的共同底座</title><link>https://blog.zoloy.top/posts/aqs-%E9%98%9F%E5%88%97%E5%90%8C%E6%AD%A5%E5%99%A8/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/aqs-%E9%98%9F%E5%88%97%E5%90%8C%E6%AD%A5%E5%99%A8/</guid><description>AQS 将阻塞、排队、唤醒抽离为抽象基类，子类只需定义 tryAcquire/tryRelease 语义，实现锁与同步器的统一底座。</description><pubDate>Fri, 06 Dec 2024 09:00:00 GMT</pubDate></item><item><title>Java线上排查——从top到Arthas的完整工具链</title><link>https://blog.zoloy.top/posts/%E7%BA%BF%E4%B8%8A%E6%8E%92%E6%9F%A5-arthas-%E5%B7%A5%E5%85%B7%E9%93%BE/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E7%BA%BF%E4%B8%8A%E6%8E%92%E6%9F%A5-arthas-%E5%B7%A5%E5%85%B7%E9%93%BE/</guid><description>从 top 定位 CPU 到 Arthas trace 精准定位方法耗时，构建 Java 线上排查的五场景完整工具链。</description><pubDate>Tue, 03 Dec 2024 09:00:00 GMT</pubDate></item><item><title>synchronized锁升级机制</title><link>https://blog.zoloy.top/posts/synchronized%E9%94%81%E5%8D%87%E7%BA%A7%E6%9C%BA%E5%88%B6/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/synchronized%E9%94%81%E5%8D%87%E7%BA%A7%E6%9C%BA%E5%88%B6/</guid><description>synchronized 根据竞争程度自动升级：无锁→偏向锁→轻量级锁→重量级锁，通过 Mark Word 编码锁状态实现无竞争零开销。</description><pubDate>Sun, 01 Dec 2024 09:00:00 GMT</pubDate></item><item><title>happens-before规则详解：JMM的8条核心约束</title><link>https://blog.zoloy.top/posts/happens-before%E8%A7%84%E5%88%99%E8%AF%A6%E8%A7%A3/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/happens-before%E8%A7%84%E5%88%99%E8%AF%A6%E8%A7%A3/</guid><description>JMM 的 8 条 happens-before 规则定义了多线程下变量修改的可见性保证，是理解 volatile、锁、并发工具的前提。</description><pubDate>Thu, 28 Nov 2024 09:00:00 GMT</pubDate></item><item><title>OOM类型全景排查——从heap到direct memory的四种溢出路径</title><link>https://blog.zoloy.top/posts/oom%E7%B1%BB%E5%9E%8B%E5%85%A8%E6%99%AF%E6%8E%92%E6%9F%A5/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/oom%E7%B1%BB%E5%9E%8B%E5%85%A8%E6%99%AF%E6%8E%92%E6%9F%A5/</guid><description>四种 OOM 全景排查：堆 OOM 用 MAT 支配树找泄漏源、元空间查 ClassLoader、栈溢出看递归、直接内存手动 cleaner 释放</description><pubDate>Tue, 26 Nov 2024 09:00:00 GMT</pubDate></item><item><title>JVM运行时数据区——每个字节码在哪里执行？</title><link>https://blog.zoloy.top/posts/jvm%E8%BF%90%E8%A1%8C%E6%97%B6%E6%95%B0%E6%8D%AE%E5%8C%BA/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/jvm%E8%BF%90%E8%A1%8C%E6%97%B6%E6%95%B0%E6%8D%AE%E5%8C%BA/</guid><description>JVM 运行时区分为线程共享的堆与元空间、线程私有的虚拟机栈与 PC 寄存器，不同 OOM 类型精确对应各自所属内存区域。</description><pubDate>Sat, 23 Nov 2024 09:00:00 GMT</pubDate></item><item><title>JVM三色标记与漏标问题</title><link>https://blog.zoloy.top/posts/jvm%E4%B8%89%E8%89%B2%E6%A0%87%E8%AE%B0%E4%B8%8E%E6%BC%8F%E6%A0%87/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/jvm%E4%B8%89%E8%89%B2%E6%A0%87%E8%AE%B0%E4%B8%8E%E6%BC%8F%E6%A0%87/</guid><description>三色标记中漏标的充要条件是黑色对象新增白引用且灰色到白引用被删，CMS 用写后屏障增量更新，G1 用写前屏障 SATB 保留快照。</description><pubDate>Thu, 21 Nov 2024 09:00:00 GMT</pubDate></item><item><title>JVM指针压缩：32位地址访问32GB堆的魔法</title><link>https://blog.zoloy.top/posts/jvm-%E6%8C%87%E9%92%88%E5%8E%8B%E7%BC%A9/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/jvm-%E6%8C%87%E9%92%88%E5%8E%8B%E7%BC%A9/</guid><description>利用对象 8 字节对齐低 3 位恒零，将 64 位地址右移 3 位压缩为 32 位存储，解码时左移恢复，4 字节指针寻址 32GB 堆。</description><pubDate>Tue, 19 Nov 2024 09:00:00 GMT</pubDate></item><item><title>JVM对象创建与生命周期：从new指令到GC回收</title><link>https://blog.zoloy.top/posts/jvm-%E5%AF%B9%E8%B1%A1%E5%88%9B%E5%BB%BA%E4%B8%8E%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/jvm-%E5%AF%B9%E8%B1%A1%E5%88%9B%E5%BB%BA%E4%B8%8E%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/</guid><description>new 指令触发类加载检查、TLAB 无锁分配、零值初始化、设置 Mark Word 与 Klass Pointer 对象头，经历 Eden→Survivor→Old 三代晋升至 GC 回收。</description><pubDate>Sat, 16 Nov 2024 09:00:00 GMT</pubDate></item><item><title>JVM ShenandoahGC：Brooks Pointer与并发转移</title><link>https://blog.zoloy.top/posts/jvm-shenandoahgc/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/jvm-shenandoahgc/</guid><description>Shenandoah 用对象头前 Brooks 转发指针实现并发转移，应用线程每次读引用经过转发指针跳转，CAS 更新实现转移与访问的原子同步。</description><pubDate>Thu, 14 Nov 2024 09:00:00 GMT</pubDate></item><item><title>JVM Epsilon回收器：什么也不做的GC</title><link>https://blog.zoloy.top/posts/jvm-epsilon%E5%9B%9E%E6%94%B6%E5%99%A8/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/jvm-epsilon%E5%9B%9E%E6%94%B6%E5%99%A8/</guid><description>Epsilon GC 只分配不回收，消除 GC 变量后可用于 JMH 基准测试、测量 GC 真实开销、通过二分 OOM 边界确定应用精确内存需求。</description><pubDate>Mon, 11 Nov 2024 09:00:00 GMT</pubDate></item><item><title>JIT编译与逃逸分析——JVM如何让你的Java代码越跑越快？</title><link>https://blog.zoloy.top/posts/jit%E7%BC%96%E8%AF%91%E4%B8%8E%E9%80%83%E9%80%B8%E5%88%86%E6%9E%90/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/jit%E7%BC%96%E8%AF%91%E4%B8%8E%E9%80%83%E9%80%B8%E5%88%86%E6%9E%90/</guid><description>C2 逃逸分析将未逃逸对象做标量替换免除堆分配，连带触发锁消除，方法内联为优化提供更大上下文，让 Java 代码越跑越快。</description><pubDate>Sat, 09 Nov 2024 09:00:00 GMT</pubDate></item><item><title>GraalVM-Native-Image-AOT编译四阶段</title><link>https://blog.zoloy.top/posts/graalvm-native-image-aot%E7%BC%96%E8%AF%91%E5%9B%9B%E9%98%B6%E6%AE%B5/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/graalvm-native-image-aot%E7%BC%96%E8%AF%91%E5%9B%9B%E9%98%B6%E6%AE%B5/</guid><description>Native Image 通过指针分析删死代码、堆快照预计算 Spring 初始化、AOT 编译为机器码，将启动从 12s 压缩到 0.2s。</description><pubDate>Wed, 06 Nov 2024 09:00:00 GMT</pubDate></item><item><title>G1垃圾回收器——Region、RSet和SATB</title><link>https://blog.zoloy.top/posts/g1%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6%E5%99%A8-rset/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/g1%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6%E5%99%A8-rset/</guid><description>G1 将堆切为 2048 个 Region 动态分代，RSet 记录跨 Region 引用避免全堆扫描，SATB 保留快照保证并发标记不丢对象。</description><pubDate>Mon, 04 Nov 2024 09:00:00 GMT</pubDate></item><item><title>虚拟线程的Pinning问题</title><link>https://blog.zoloy.top/posts/%E8%99%9A%E6%8B%9F%E7%BA%BF%E7%A8%8B%E7%9A%84pinning%E9%97%AE%E9%A2%98/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E8%99%9A%E6%8B%9F%E7%BA%BF%E7%A8%8B%E7%9A%84pinning%E9%97%AE%E9%A2%98/</guid><description>synchronized 的 Monitor 锁与 OS 线程绑定导致虚拟线程无法卸载，替换为 ReentrantLock 可彻底解决 Pinning 问题。</description><pubDate>Fri, 01 Nov 2024 09:00:00 GMT</pubDate></item><item><title>Stream惰性求值——为什么中间操作不会立刻执行？</title><link>https://blog.zoloy.top/posts/stream%E6%83%B0%E6%80%A7%E6%B1%82%E5%80%BC%E4%B8%8Esink%E9%93%BE/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/stream%E6%83%B0%E6%80%A7%E6%B1%82%E5%80%BC%E4%B8%8Esink%E9%93%BE/</guid><description>揭示 Stream 惰性求值机制——中间操作只构建 Pipeline 链表不执行，终止操作触发 Sink 链构建后每个元素一次性穿越所有中间操作，配合短路操作提前终止遍历。</description><pubDate>Wed, 30 Oct 2024 09:00:00 GMT</pubDate></item><item><title>Lambda的invokedynamic与匿名内部类</title><link>https://blog.zoloy.top/posts/lambda%E7%9A%84invokedynamic%E4%B8%8E%E5%8C%BF%E5%90%8D%E5%86%85%E9%83%A8%E7%B1%BB/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/lambda%E7%9A%84invokedynamic%E4%B8%8E%E5%8C%BF%E5%90%8D%E5%86%85%E9%83%A8%E7%B1%BB/</guid><description>Lambda 通过 invokedynamic 运行时动态生成类，无捕获时为单例，与编译期生成.class 的匿名内部类本质不同</description><pubDate>Sun, 27 Oct 2024 09:00:00 GMT</pubDate></item><item><title>Java 21 结构化并发：让虚拟线程如虎添翼</title><link>https://blog.zoloy.top/posts/java21%E7%BB%93%E6%9E%84%E5%8C%96%E5%B9%B6%E5%8F%91/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/java21%E7%BB%93%E6%9E%84%E5%8C%96%E5%B9%B6%E5%8F%91/</guid><description>StructuredTaskScope 将子任务生命周期限定在 try-with-resources 花括号内，任一失败全员取消，与虚拟线程配合实现廉价海量并发无泄漏。</description><pubDate>Fri, 25 Oct 2024 09:00:00 GMT</pubDate></item><item><title>Java Record与Sealed类——代数数据类型（ADT）的语言级支持</title><link>https://blog.zoloy.top/posts/java-record-sealed%E7%B1%BB/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/java-record-sealed%E7%B1%BB/</guid><description>Record 一行声明不可变数据类编译器自动生成全套方法，Sealed 限制子类集合配合 switch 模式匹配实现编译期穷举检查消除漏分支。</description><pubDate>Tue, 22 Oct 2024 09:00:00 GMT</pubDate></item><item><title>HashMap的哈希扰动与扩容机制</title><link>https://blog.zoloy.top/posts/hashmap%E7%9A%84%E5%93%88%E5%B8%8C%E6%89%B0%E5%8A%A8%E4%B8%8E%E6%89%A9%E5%AE%B9%E6%9C%BA%E5%88%B6/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/hashmap%E7%9A%84%E5%93%88%E5%B8%8C%E6%89%B0%E5%8A%A8%E4%B8%8E%E6%89%A9%E5%AE%B9%E6%9C%BA%E5%88%B6/</guid><description>HashMap 用 h^(h&gt;&gt;&gt;16) 扰动让高位参与桶定位，扩容时 hash&amp;oldCap 一次位运算决定节点去留，尾插法消除 JDK7 死循环。</description><pubDate>Sun, 20 Oct 2024 09:00:00 GMT</pubDate></item><item><title>ConcurrentHashMap——从JDK7分段锁到JDK8桶级锁</title><link>https://blog.zoloy.top/posts/concurrenthashmap-%E6%A1%B6%E7%BA%A7%E9%94%81/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/concurrenthashmap-%E6%A1%B6%E7%BA%A7%E9%94%81/</guid><description>JDK 8 ConcurrentHashMap 以桶头节点 synchronized + CAS 空桶替代 JDK 7 分段锁，多线程协助扩容，ForwardingNode 让读操作对扩容透明。</description><pubDate>Thu, 17 Oct 2024 09:00:00 GMT</pubDate></item><item><title>ArrayList与CopyOnWriteArrayList——1.5倍扩容与fail-fast机制</title><link>https://blog.zoloy.top/posts/arraylist-copyonwritearraylist-fail-fast/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/arraylist-copyonwritearraylist-fail-fast/</guid><description>ArrayList 1.5 倍扩容与 fail-fast 迭代器的 modCount 检测机制，CopyOnWriteArrayList 以写时复制数组实现读无锁写安全。</description><pubDate>Tue, 15 Oct 2024 09:00:00 GMT</pubDate></item><item><title>注解原理——@Override背后有一个动态代理</title><link>https://blog.zoloy.top/posts/%E6%B3%A8%E8%A7%A3%E5%8E%9F%E7%90%86-%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E6%B3%A8%E8%A7%A3%E5%8E%9F%E7%90%86-%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86/</guid><description>注解本质是继承 Annotation 的接口，运行时通过 JDK 动态代理将 class 文件属性表中的值映射为方法返回值。</description><pubDate>Sun, 13 Oct 2024 09:00:00 GMT</pubDate></item><item><title>Java泛型类型擦除——编译器为什么要生成桥接方法？</title><link>https://blog.zoloy.top/posts/%E6%B3%9B%E5%9E%8B%E6%93%A6%E9%99%A4-%E6%A1%A5%E6%8E%A5%E6%96%B9%E6%B3%95/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E6%B3%9B%E5%9E%8B%E6%93%A6%E9%99%A4-%E6%A1%A5%E6%8E%A5%E6%96%B9%E6%B3%95/</guid><description>泛型擦除后多态调用断裂，编译器自动生成桥接方法作为 JVM 与泛型之间的翻译层修复方法签名不匹配。</description><pubDate>Thu, 10 Oct 2024 09:00:00 GMT</pubDate></item><item><title>Java序列化——反序列化为什么用Unsafe.allocateInstance绕过构造器？</title><link>https://blog.zoloy.top/posts/%E5%BA%8F%E5%88%97%E5%8C%96-%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E5%BA%95%E5%B1%82/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%BA%8F%E5%88%97%E5%8C%96-%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E5%BA%95%E5%B1%82/</guid><description>反序列化通过 Unsafe.allocateInstance 绕过构造器恢复对象状态，同时也带来了 RCE 安全风险。</description><pubDate>Tue, 08 Oct 2024 09:00:00 GMT</pubDate></item><item><title>Java反射——Inflation机制让反射接近直接调用</title><link>https://blog.zoloy.top/posts/%E5%8F%8D%E5%B0%84%E6%9C%BA%E5%88%B6%E4%B8%8Einflation/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%8F%8D%E5%B0%84%E6%9C%BA%E5%88%B6%E4%B8%8Einflation/</guid><description>反射调用前 15 次走 Native JNI，之后 Inflation 机制动态生成字节码实现接近直接调用的性能，深刻理解反射的慢与优化。</description><pubDate>Sat, 05 Oct 2024 09:00:00 GMT</pubDate></item><item><title>享元模式——IntegerCache与String常量池的共享之道</title><link>https://blog.zoloy.top/posts/%E4%BA%AB%E5%85%83%E6%A8%A1%E5%BC%8F/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E4%BA%AB%E5%85%83%E6%A8%A1%E5%BC%8F/</guid><description>享元模式通过共享减少对象创建，IntegerCache 和 String 常量池是 JDK 源码中最经典的应用实例。</description><pubDate>Thu, 03 Oct 2024 09:00:00 GMT</pubDate></item><item><title>hashCode与equals的契约——为什么重写equals必须重写hashCode？</title><link>https://blog.zoloy.top/posts/hashcode-equals-hashmap/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/hashcode-equals-hashmap/</guid><description>equals 相等的对象 hashCode 必须相等，违反这条契约 HashMap 的 get 就找不到 key，详解散列桶定位的底层逻辑。</description><pubDate>Mon, 30 Sep 2024 09:00:00 GMT</pubDate></item><item><title>String、StringBuilder、StringBuffer 深入对比：从字节码到 JMH 性能</title><link>https://blog.zoloy.top/posts/string-stringbuilder-stringbuffer%E6%B7%B1%E5%85%A5%E5%AF%B9%E6%AF%94/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/string-stringbuilder-stringbuffer%E6%B7%B1%E5%85%A5%E5%AF%B9%E6%AF%94/</guid><description>从 JDK 9 Compact Strings 的 byte[]+coder 机制到扩容策略与 javac+号编译优化，再到 JMH 性能数据对比，给出三者的完整选型决策树。</description><pubDate>Sat, 28 Sep 2024 09:00:00 GMT</pubDate></item><item><title>Java异常表的零开销机制</title><link>https://blog.zoloy.top/posts/java%E5%BC%82%E5%B8%B8%E8%A1%A8%E7%9A%84%E9%9B%B6%E5%BC%80%E9%94%80%E6%9C%BA%E5%88%B6/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/java%E5%BC%82%E5%B8%B8%E8%A1%A8%E7%9A%84%E9%9B%B6%E5%BC%80%E9%94%80%E6%9C%BA%E5%88%B6/</guid><description>try-catch 编译为 class 文件末尾异常表而非内联代码，正常路径字节码零痕迹真零开销，finally 靠编译器在所有出口复制代码实现。</description><pubDate>Wed, 25 Sep 2024 09:00:00 GMT</pubDate></item><item><title>Java四种引用类型——强软弱虚与Cleaner的堆外内存释放链</title><link>https://blog.zoloy.top/posts/java%E5%9B%9B%E7%A7%8D%E5%BC%95%E7%94%A8%E7%B1%BB%E5%9E%8B-cleaner%E6%9C%BA%E5%88%B6/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/java%E5%9B%9B%E7%A7%8D%E5%BC%95%E7%94%A8%E7%B1%BB%E5%9E%8B-cleaner%E6%9C%BA%E5%88%B6/</guid><description>软引用 OOM 前回收适用内存敏感缓存，弱引用随 GC 清除为 ThreadLocal 键，虚引用加 Cleaner 链表实现堆外内存精确延迟释放。</description><pubDate>Mon, 23 Sep 2024 09:00:00 GMT</pubDate></item><item><title>IntegerCache——为什么Integer 127 == Integer 127是true而128不是？</title><link>https://blog.zoloy.top/posts/integercache-%E8%87%AA%E5%8A%A8%E8%A3%85%E7%AE%B1/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/integercache-%E8%87%AA%E5%8A%A8%E8%A3%85%E7%AE%B1/</guid><description>Integer 自动装箱走 valueOf 享元缓存 -128~127 内对象，== 比引用非值 equals 才是正确比较，三元运算类型推断可能触发 NPE 拆箱。</description><pubDate>Fri, 20 Sep 2024 09:00:00 GMT</pubDate></item><item><title>Compact Strings——JDK 9如何将String内存占用减半？</title><link>https://blog.zoloy.top/posts/compact-strings-jdk9/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/compact-strings-jdk9/</guid><description>JDK 9 用 byte[] 替代 char[] 加 coder 标志位实现紧凑字符串，纯 ASCII 内存减半，coder 被 JIT 内联消除分支无运行时开销。</description><pubDate>Wed, 18 Sep 2024 09:00:00 GMT</pubDate></item><item><title>ByteBuffer——HeapByteBuffer与DirectByteBuffer的本质区别</title><link>https://blog.zoloy.top/posts/bytebuffer-%E5%A0%86%E5%A4%96%E5%86%85%E5%AD%98-directbytebuffer/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/bytebuffer-%E5%A0%86%E5%A4%96%E5%86%85%E5%AD%98-directbytebuffer/</guid><description>HeapByteBuffer 在 IO 路径多一次堆内到堆外拷贝，DirectByteBuffer 直通内核但依赖 Cleaner 虚引用释放，有隐蔽的堆外内存泄漏风险。</description><pubDate>Sun, 15 Sep 2024 09:00:00 GMT</pubDate></item><item><title>BigDecimal——为什么0.1+0.2不等于0.3？</title><link>https://blog.zoloy.top/posts/bigdecimal-ieee754%E7%B2%BE%E5%BA%A6%E9%99%B7%E9%98%B1/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/bigdecimal-ieee754%E7%B2%BE%E5%BA%A6%E9%99%B7%E9%98%B1/</guid><description>IEEE 754 二进制浮点无法精确表示 0.1，BigDecimal 用十进制定点数模型消除精度误差，金额计算严禁用 double 构造器。</description><pubDate>Fri, 13 Sep 2024 09:00:00 GMT</pubDate></item><item><title>BIO的ServerSocket.accept()——从Java到内核的完整调用链</title><link>https://blog.zoloy.top/posts/bio-serversocket-%E5%AE%8C%E6%95%B4%E8%B0%83%E7%94%A8%E9%93%BE/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/bio-serversocket-%E5%AE%8C%E6%95%B4%E8%B0%83%E7%94%A8%E9%93%BE/</guid><description>从 Java ServerSocket.accept() 出发，穿透 JNI/libc 直达内核 sys_accept，完整展现一次 BIO 阻塞的六层调用链。</description><pubDate>Wed, 11 Sep 2024 09:00:00 GMT</pubDate></item><item><title>后端学习路线</title><link>https://blog.zoloy.top/posts/%E5%90%8E%E7%AB%AF%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/</link><guid isPermaLink="true">https://blog.zoloy.top/posts/%E5%90%8E%E7%AB%AF%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/</guid><description>一份面向初学者的后端技术学习指南，详细梳理了 Java 后端开发所需的基础语言、核心框架、中间件系统以及开发工具的学习顺序与心得。</description><pubDate>Wed, 11 Sep 2024 09:00:00 GMT</pubDate></item></channel></rss>