每日精选
技术专区
置顶 精华 原创 Spring Boot 3 优雅处理全局异常的 5 种方式(含源码)
前言 如果每个 Controller 都写 try-catch,代码会变得又臭又长。Spring Boot 提供了多种全局异常处理机制,本文逐一对比。 方式一:@ControllerAdvice(最常用) 方式二:统一响应体 方式三:自定义异常 + 错误码枚举 方式四:实现 ErrorControl...
置顶 精华 原创 深入理解 JVM 垃圾回收:从分代模型到 G1 调优实战
一、为什么要理解 GC Java 程序员不需要手动释放内存,但一旦出现 Full GC 频繁、STW 时间过长的问题,如果不理解垃圾回收原理,就只能靠猜。 一次典型的故障:某订单服务在大促期间 RT 从 50ms 飙升到 3s,监控显示每分钟触发 2~3 次 Full GC。 二、分代假说 JVM ...
置顶 精华 原创 Java 线程池参数详解与生产环境最佳实践(避坑指南)
一、为什么不推荐 Executors 阿里开发手册明确禁止使用 Executors 创建线程池,原因是: newFixedThreadPool 使用无界队列 LinkedBlockingQueue,可能 OOMnewCachedThreadPool 最大线程数为 Integer.MAX_VALUE,...
置顶 原创 GitBlog 实测:JVM 垃圾回收调优(已修订)
# JVM 垃圾回收调优 修订版正文:ZGC 的停顿时间都在亚毫秒级。  ## 定时同步验证段 这一段是 2026-...
原创 2026 Java 后端面试高频题 TOP20(含标准答案)
1. HashMap 底层实现 数组 + 链表 + 红黑树。默认容量 16,负载因子 0.75,链表长度 >8 且数组长度 ≥64 时树化。hash() 用高 16 位异或低 16 位减少碰撞。扩容时 1.8 采用高位拆分,避免死循环。 2. synchronized 与 Lock 区别 | 维度 ...
原创 Java 线程池参数详解与生产环境最佳实践(避坑指南)
## 一、为什么不推荐 Executors 阿里开发手册明确禁止使用 `Executors` 创建线程池,原因是: - `newFixedThreadPool` 使用无界队列 `LinkedBlockingQueue`,可能 OOM - `newCachedThreadPool` 最大线程数为 `I...
原创 GitBlog 实测:JVM 类加载机制
# JVM 类加载机制 本文由 **Git 提交 + 定时同步** 自动生成,用于验证新增文件的入库链路。 ## 双亲委派模型 类加载器收到加载请求时,先委派给父加载器,只有父加载器无法完成时才自己尝试。 ## 三个内置加载器 1. Bootstrap ClassLoader:加载 `JAVA_HO...
原创 crontab 自然触发验证 (CRONSYNC-2056)
这是一篇用于验证 crontab 自然触发同步的临时文章,验证完成后会删除。
原创 Spring Boot 3 优雅处理全局异常的 5 种方式(含源码)
## 前言 如果每个 Controller 都写 `try-catch`,代码会变得又臭又长。Spring Boot 提供了多种全局异常处理机制,本文逐一对比。 ## 方式一:@ControllerAdvice(最常用) ## 方式二:统一响应体 ## 方式三:自定义异常 + 错误码枚举 ## 方式...
1共 9 条