<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_41566366的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_41566366</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_41566366]]></copyright><item><title><![CDATA[Java代码编写实践：避免在静态初始化块中执行风险操作]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/155571455</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/155571455</guid><author>qq_41566366</author><pubDate>Thu, 04 Dec 2025 15:02:05 +0800</pubDate><description><![CDATA[若不确定某段代码是否绝对安全，应默认将其移出静态块，转为方法内调用或使用懒加载模式。这一原则能显著降低生产环境的运维风险。]]></description><category></category></item><item><title><![CDATA[系统卡顿排查指南：从 atop 到自动恢复]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/155242406</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/155242406</guid><author>qq_41566366</author><pubDate>Tue, 25 Nov 2025 19:06:27 +0800</pubDate><description><![CDATA[本文档介绍如何使用atop工具诊断Linux系统卡顿问题，重点关注内存耗尽导致的死锁现象。主要内容包括： PSI指标：量化系统&quot;痛苦程度&quot;，通过memsome和memfull判断内存阻塞情况，当memfull&gt;40%时系统可能完全死锁。 PAG指标：反映内存回收剧烈程度，高scan值表明系统正疯狂寻找可用内存，可能导致CPU资源耗尽。 解决方案：建议配置earlyoom工具，在内存和Swap耗尽前（如内存&lt;5%、Swap&lt;10%）自动终止问题进程，防止系统彻底死锁。 环]]></description><category></category></item><item><title><![CDATA[VMware ESXi 虚拟机快照与 Thick/Thin 磁盘的备份机制详解]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/154652238</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/154652238</guid><author>qq_41566366</author><pubDate>Mon, 10 Nov 2025 15:59:33 +0800</pubDate><description><![CDATA[快照是“时间点保护”，备份是“数据拷贝”；Thick 磁盘保证性能，Thin 磁盘节省空间。Thick 提供稳定运行；快照用于短期防护；备份用于灾难恢复。]]></description><category></category></item><item><title><![CDATA[Spring Boot 缓存：工具选型、两级缓存策略、注解实现与进阶优化]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/153964111</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/153964111</guid><author>qq_41566366</author><pubDate>Mon, 27 Oct 2025 10:57:29 +0800</pubDate><description><![CDATA[基础层：区分本地缓存（Caffeine）与分布式缓存（Redis）的特性边界策略层：“多机、高频读、低实时性”场景优先选择两级缓存实现层：两级缓存用手动编码，单级缓存用注解简化（需配RedisCacheManager）优化层：遵循“先更库再清缓存”保障一致性，针对性解决三大经典问题选型层：基于场景需求选择工具，拒绝“一刀切”方案。]]></description><category></category></item><item><title><![CDATA[Claude Code + cc-switch 配置指南]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/153755902</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/153755902</guid><author>qq_41566366</author><pubDate>Thu, 23 Oct 2025 01:13:36 +0800</pubDate><description><![CDATA[服务商会根据账户等级，对单位时间内的请求次数 (RPM)、Token 处理量 (TPM) 等指标进行限制。完成配置后，用户即可在代码编辑器的终端中，通过简单的命令，调用 Kimi、GPT-4 或其他主流 AI 模型，辅助完成代码编写、解释和调试等任务。API Key 是一串由 AI 服务提供商生成的唯一字符串，用于验证请求者的身份并进行计费。) 会无法正确处理依赖关系，并抛出一系列警告，最终导致安装失败或即使安装完成也无法运行。并回车，若显示 Claude Code 的欢迎界面，则表示安装成功。]]></description><category></category></item><item><title><![CDATA[规范驱动开发 (Specification-Driven Development, SDD)]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/151866236</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/151866236</guid><author>qq_41566366</author><pubDate>Fri, 19 Sep 2025 15:16:23 +0800</pubDate><description><![CDATA[GitHub推出的规范驱动开发(SDD)是一场AI驱动的软件开发革命。它将规范作为核心产物，代码降级为规范的衍生品，颠覆了传统&quot;代码为王&quot;的开发模式。SDD通过/specify、/plan、/tasks等命令实现自动化工作流：将功能描述转化为完整规范，生成技术实现计划，并分解为可执行任务。这种方法大幅提升开发效率，使开发者从机械性编码中解放出来，专注于创造性和批判性思维。SDD特别适合应对现代软件日益增长的复杂度，支持快速迭代和业务转向，同时保持系统一致性。]]></description><category></category></item><item><title><![CDATA[Ubuntu DNS 综合配置与排查指南]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/150428765</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/150428765</guid><author>qq_41566366</author><pubDate>Fri, 15 Aug 2025 18:18:43 +0800</pubDate><description><![CDATA[优先使用查看真实 DNS持久化配置优选 Netplan，桌面可用图形界面企业环境建议内部 DNS 优先，配置前务必备份遇到解析异常，重启 systemd-resolved 并检查配置通过本指南，我们可以高效、规范地完成 Ubuntu 下 DNS 的配置与排查，确保系统网络解析的稳定与安全。]]></description><category></category></item><item><title><![CDATA[复合索引的设计哲学与实践]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/149883384</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/149883384</guid><author>qq_41566366</author><pubDate>Sun, 03 Aug 2025 17:51:10 +0800</pubDate><description><![CDATA[摘要： 复合索引是提升多条件查询效率的关键，其设计需遵循最左前缀原则，按“高选择性、等值条件、范围条件、排序字段”顺序排列列。相比单列索引，复合索引通过一次扫描减少I/O开销，避免低效的索引合并。设计时需贴合高频查询场景，控制索引数量以减少写入负担，并利用覆盖索引避免回表。维护上应定期审查冗余索引，整合扩展而非新增，平衡读写性能。主动设计优于事后补救，尤其在大型表中创建索引需谨慎权衡资源消耗。（149字）]]></description><category></category></item><item><title><![CDATA[Laravel 原子锁概念讲解]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/149486782</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/149486782</guid><author>qq_41566366</author><pubDate>Sun, 20 Jul 2025 18:46:26 +0800</pubDate><description><![CDATA[在并发编程中，当多个进程或线程同时访问和修改同一个共享资源时，最终结果会因其执行时序的微小差异而变得不可预测，甚至产生错误。这种情况被称为“竞争条件”。一个典型的例子是商品秒杀场景：若库存仅剩 1 件，两个请求可能在同一时刻都读取到库存为 1，并各自执行扣减操作，最终导致商品超卖。Laravel 原子锁是构建健壮、高并发应用的有力工具。掌握其配置方法、get与block两种核心策略、以及闭包自动管理的模式，可以有效避免数据竞争问题。对于复杂的跨进程通信，owner与提供了解决方案。]]></description><category></category></item><item><title><![CDATA[Rovo Dev CLI Windows 安装与使用指南]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/149123961</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/149123961</guid><author>qq_41566366</author><pubDate>Fri, 04 Jul 2025 19:36:48 +0800</pubDate><description><![CDATA[注意：不要选择右侧的"Create API token with scopes"Rovo Dev CLI 依赖 Git 环境，未安装将导致运行错误。联系组织管理员启用 Rovo Dev Agents 服务。：此令牌需"无范围(Unscoped)"权限。]]></description><category></category></item><item><title><![CDATA[通过Netplan为Ubuntu服务器新增DNS以解析内部域名]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/148583007</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/148583007</guid><author>qq_41566366</author><pubDate>Wed, 11 Jun 2025 11:29:00 +0800</pubDate><description><![CDATA[通过Netplan为Ubuntu服务器添加内部DNS服务器是确保内部服务可访问性的常见操作。关键在于正确编辑YAML配置文件，将内部DNS置于优先位置，并通过应用。如果遇到解析问题，重启服务是一个重要的排查步骤。同时，利用和nslookup等工具可以帮助诊断问题根源。始终记得在修改系统配置前进行备份。版权声明：本文为博主原创文章，遵循 CC 4.0 BY-SA 版权协议，转载请附上原文出处链接和本声明。]]></description><category></category></item><item><title><![CDATA[在 Ubuntu 中配置 Samba 实现「特定用户可写，其他用户只读」的共享目录]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/147768520</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/147768520</guid><author>qq_41566366</author><pubDate>Wed, 07 May 2025 16:16:39 +0800</pubDate><description><![CDATA[将目录  的所有权设为  用户和所属组，并设置权限：

 权限：

所有者（）可读写执行；
其他用户仅可读和执行。





2. 配置 Samba 共享目录
编辑 Samba 配置文件（通常位于 ），添加以下内容：
配置参数详解




参数
作用





共享目录的物理路径



禁止匿名访问



允许用户浏览目录



默认所有用户不可写



仅  用户可写



新建文件的权限（所有者可读写，其他用户只读）



新建目录的权限（所有者可读写执行，其他用户只读执行）



3. 重启 Samb]]></description><category></category></item><item><title><![CDATA[理解子网掩码：网络划分与 IP 地址管理的核心]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/147505107</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/147505107</guid><author>qq_41566366</author><pubDate>Fri, 25 Apr 2025 12:24:05 +0800</pubDate><description><![CDATA[子网掩码是一个 32 位（IPv4）或 128 位（IPv6，但概念上用前缀长度表示）的地址，用于区分 IP 地址中的网络部分和主机部分。它的核心作用是帮助网络设备判断一个给定的 IP 地址属于哪个具体的网络（或子网），以及该网络内可用的主机地址范围。1. 核心功能：通过与 IP 地址进行逻辑运算，提取出网络地址。明确 IP 地址中哪些位代表网络，哪些位代表该网络内的具体设备。2. 表示方法（IPv4）：如。这是将 32 位二进制数分成 4 个 8 位组（字节），每组转换为十进制数，并用点分隔。]]></description><category></category></item><item><title><![CDATA[Windows上使用NSSM注册定时服务]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/147026031</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/147026031</guid><author>qq_41566366</author><pubDate>Sun, 06 Apr 2025 15:55:47 +0800</pubDate><description><![CDATA[命令说明创建名为 servername 的服务（弹出配置界面）启动服务暂停服务重新启动服务删除服务修改服务（弹出编辑界面）nssm set servername 参数名 参数值设置服务参数使用 Windows 命令删除服务。]]></description><category></category></item><item><title><![CDATA[split按空格分割失败的罪魁祸首：不换行空格 (`\u00A0`)]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/146704257</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/146704257</guid><author>qq_41566366</author><pubDate>Sat, 29 Mar 2025 18:15:45 +0800</pubDate><description><![CDATA[在日常开发中，经常需要处理用户输入的文本，一个常见的操作就是根据空格将字符串分割成数组（例如，处理用空格分隔的标签、ID 列表等）。Java 中的方法通常能很好地完成这个任务。但有时，会发现一个看起来完全是用标准空格分隔的字符串，用split(' ')处理后却得到了一个未分割的、包含整个原始字符串的单元素数组！这到底是为什么呢？本文揭示一个常见的“隐形杀手”——不换行空格 (Non-Breaking Space, NBSP)，并提供健壮的处理方法。]]></description><category></category></item><item><title><![CDATA[在 Windows 上使用 ZIP 包安装 MySQL 的详细步骤]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/145521563</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/145521563</guid><author>qq_41566366</author><pubDate>Sat, 08 Feb 2025 19:15:24 +0800</pubDate><description><![CDATA[以下是使用官方 ZIP 包在 Windows 上安装 MySQL 的详细步骤，确保能通过成功连接。]]></description><category></category></item><item><title><![CDATA[VSCode/Visual Studio Code实现点击方法名跳转到具体方法的]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/144749970</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/144749970</guid><author>qq_41566366</author><pubDate>Thu, 26 Dec 2024 17:51:24 +0800</pubDate><description><![CDATA[在 Visual Studio Code 中，通过设置和使用一些快捷键，您可以轻松地点击方法名跳转到方法实现。这通常依赖于所安装的语言扩展，并使用 IntelliSense 功能。]]></description><category></category></item><item><title><![CDATA[Mysql索引-学习笔记]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/143487141</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/143487141</guid><author>qq_41566366</author><pubDate>Mon, 04 Nov 2024 16:20:10 +0800</pubDate><description><![CDATA[可以看到，如果where子句仅仅使用联合索引的第二个字段作为过滤条件，那么如果select中的字段不在联合索引中，就会使用全表查询，如果使用的字段在联合索引中，那么就会使用index索引。如果希望使用联合索引的第二个字段作为过滤条件，此时应该在where子句中加上联合索引的第一个字段，这两个字段在where子句中的顺序，或者有其他where语句，并不影响使用ref索引。在使用联合索引时，如果where子句中仅仅使用联合索引的第二个字段作为过滤条件，将可能导致索引类型为ALL或者index。]]></description><category></category></item><item><title><![CDATA[Ubuntu 系统 LVM 逻辑卷初始化&扩容实战指南]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/143192517</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/143192517</guid><author>qq_41566366</author><pubDate>Wed, 23 Oct 2024 20:10:34 +0800</pubDate><description><![CDATA[在虚拟化环境中，调整磁盘大小是一个常见的需求。本文将指导你如何在ESXi上调整连接的LVM磁盘大小，并在Ubuntu系统中进行相应的配置更新。]]></description><category></category></item><item><title><![CDATA[systemd指令之journalctl指令]]></title><link>https://blog.youkuaiyun.com/qq_41566366/article/details/140060690</link><guid>https://blog.youkuaiyun.com/qq_41566366/article/details/140060690</guid><author>qq_41566366</author><pubDate>Sat, 29 Jun 2024 11:23:26 +0800</pubDate><description><![CDATA[在Linux系统的发展历程中，init进程一直是系统启动的核心。启动时间长init进程采用串行启动机制，只有在前一个进程启动完成后，才能启动下一个进程，这导致了整体启动时间的延长。启动脚本复杂init进程负责执行启动脚本，但不管理其他事务。启动脚本需要自行处理各种情况，这往往使得脚本变得冗长且复杂。正是由于这些限制，systemd应运而生。systemd是一个现代化的初始化系统，它旨在克服init的缺点，提供更快的启动速度和更强的功能性。systemd通过并行处理服务的启动，减少了系统的启动时间。]]></description><category></category></item></channel></rss>