置顶 原创 GitBlog 实测:JVM 垃圾回收调优(已修订)
# JVM 垃圾回收调优 修订版正文:ZGC 的停顿时间都在亚毫秒级。  ## 定时同步验证段 这一段是 2026-...
置顶 精华 原创 Java 线程池参数详解与生产环境最佳实践(避坑指南)
一、为什么不推荐 Executors 阿里开发手册明确禁止使用 Executors 创建线程池,原因是: newFixedThreadPool 使用无界队列 LinkedBlockingQueue,可能 OOMnewCachedThreadPool 最大线程数为 Integer.MAX_VALUE,...
置顶 精华 原创 深入理解 JVM 垃圾回收:从分代模型到 G1 调优实战
一、为什么要理解 GC Java 程序员不需要手动释放内存,但一旦出现 Full GC 频繁、STW 时间过长的问题,如果不理解垃圾回收原理,就只能靠猜。 一次典型的故障:某订单服务在大促期间 RT 从 50ms 飙升到 3s,监控显示每分钟触发 2~3 次 Full GC。 二、分代假说 JVM ...
置顶 精华 原创 Spring Boot 3 优雅处理全局异常的 5 种方式(含源码)
前言 如果每个 Controller 都写 try-catch,代码会变得又臭又长。Spring Boot 提供了多种全局异常处理机制,本文逐一对比。 方式一:@ControllerAdvice(最常用) 方式二:统一响应体 方式三:自定义异常 + 错误码枚举 方式四:实现 ErrorControl...
原创 crontab 自然触发验证 (CRONSYNC-2056)
这是一篇用于验证 crontab 自然触发同步的临时文章,验证完成后会删除。
原创 GitBlog 实测:Go 并发模型浅析
# Go 并发模型 goroutine + channel。
原创 GitBlog 实测:JVM 类加载机制
# JVM 类加载机制 本文由 **Git 提交 + 定时同步** 自动生成,用于验证新增文件的入库链路。 ## 双亲委派模型 类加载器收到加载请求时,先委派给父加载器,只有父加载器无法完成时才自己尝试。 ## 三个内置加载器 1. Bootstrap ClassLoader:加载 `JAVA_HO...
精华 原创 Docker Compose 一键部署 LNMP 环境(含完整配置文件)
一、目录结构 二、docker-compose.yml 三、Nginx 配置 四、PHP Dockerfile 五、启动与验证 访问 http://localhost 看到 PHP 信息页即成功。 六、常见坑 502 Bad Gateway:检查 fastcgi_pass 是否用了服务名 php:9...
精华 原创 从零实现一个轻量级 Python 爬虫框架(300 行代码)
一、框架整体设计 一个最小可用的爬虫框架需要五个模块: Scheduler:URL 调度与去重Downloader:发送 HTTP 请求Parser:解析响应内容Pipeline:数据持久化Engine:驱动整个流程 二、核心代码 三、引擎与并发 四、使用示例 五、可优化方向 用 asyncio +...
原创 TypeScript 泛型进阶:条件类型、映射类型与实战应用
一、泛型基础回顾 二、泛型约束 三、keyof 与索引访问 四、条件类型 五、infer 的高级用法 六、映射类型 七、实战案例一:类型安全的 API 请求 八、实战案例二:表单校验类型 九、实战案例三:模板字面量类型 十、工具类型速查 | 类型 | 作用 | | --- | --- | | Par...
精华 原创 pandas 数据处理 10 个高效技巧,让分析速度提升 5 倍
1. 用向量化替代 apply 2. 用 query 简化布尔索引 3. 用 category 类型省内存 4. 分块读取大文件 5. 指定 dtype 减少内存 6. 用 map 做字典映射 7. groupby + agg 一次聚合多列 8. 用 merge 时注意索引 9. 避免链式赋值 10...
原创 pandas 数据处理 10 个高效技巧,让分析速度提升 5 倍
## 1. 用向量化替代 apply ## 2. 用 query 简化布尔索引 ## 3. 用 category 类型省内存 ## 4. 分块读取大文件 ## 5. 指定 dtype 减少内存 ## 6. 用 map 做字典映射 ## 7. groupby + agg 一次聚合多列 ## 8. 用 ...
原创 Linux 服务器性能排查:15 个必会命令与实战套路
一、整体概览 二、CPU 排查 关键指标:us 高:用户态代码问题(算法、死循环)sy 高:内核态(频繁系统调用、上下文切换)wa 高:等待 IO(磁盘瓶颈)cs 高:上下文切换频繁三、内存排查 四、磁盘 IO iostat 关键列:%util(设备繁忙度,>80% 说明饱和)、await(IO 等...
原创 Kubernetes Pod 调度全解析:从 nodeSelector 到亲和性调度
一、调度器工作流程 二、最简单:nodeName 三、nodeSelector(标签选择) 四、节点亲和性(更强大) 支持的 operator:In、NotIn、Exists、DoesNotExist、Gt、Lt 五、Pod 亲和性与反亲和性 场景:Web 服务与缓存尽量靠近;同一应用的副本尽量分散...
原创 Redis 分布式锁的正确实现:从 SETNX 到 Redisson 看门狗
一、错误示范:先 setnx 再 expire 二、正确姿势:原子命令 为什么必须校验 value:防止 A 线程超时后,B 获得锁,A 恢复后误删 B 的锁。 三、锁续期(Watch Dog) 业务执行时间超过锁超时时间的解决方案: 四、直接使用 Redisson Redisson 帮我们做了: ...
原创 Java 线程池参数详解与生产环境最佳实践(避坑指南)
## 一、为什么不推荐 Executors 阿里开发手册明确禁止使用 `Executors` 创建线程池,原因是: - `newFixedThreadPool` 使用无界队列 `LinkedBlockingQueue`,可能 OOM - `newCachedThreadPool` 最大线程数为 `I...
原创 Transformer 注意力机制图解与 PyTorch 手写实现
一、注意力在解决什么问题 RNN 时代,序列靠隐状态传递信息,长距离依赖会衰减。注意力机制让每个位置直接看到所有位置,一步到位。 二、QKV 是什么 把注意力类比数据库查询: Query(查询):当前位置想找什么Key(键):每个位置能提供的"标签"Value(值):每个位置实际携带的信息 流程:用...
原创 Go 并发模式实战:Worker Pool 与 Pipeline 的优雅实现
一、最简 Worker Pool 二、支持优雅退出 三、Pipeline 模式 四、使用 errgroup 管理错误 五、限制并发数 六、常见坑 goroutine 泄漏:channel 没人读也没人写,goroutine 永久阻塞for 循环变量捕获:Go 1.22 前必须 i := i 重新声明...
原创 2026 Java 后端面试高频题 TOP20(含标准答案)
1. HashMap 底层实现 数组 + 链表 + 红黑树。默认容量 16,负载因子 0.75,链表长度 >8 且数组长度 ≥64 时树化。hash() 用高 16 位异或低 16 位减少碰撞。扩容时 1.8 采用高位拆分,避免死循环。 2. synchronized 与 Lock 区别 | 维度 ...
原创 Spring Boot 3 优雅处理全局异常的 5 种方式(含源码)
## 前言 如果每个 Controller 都写 `try-catch`,代码会变得又臭又长。Spring Boot 提供了多种全局异常处理机制,本文逐一对比。 ## 方式一:@ControllerAdvice(最常用) ## 方式二:统一响应体 ## 方式三:自定义异常 + 错误码枚举 ## 方式...