Java教程
已收录文章:71篇
-
一篇 Java/Spring Boot 事务生产复盘:解释 @Transactional 自调用、proxy 模式、checked exception 默认不回滚、异步线程事务不传递等失效点,并给出拆分事务边界和上线检查清单。259 收藏
-
文章 · java教程 | 2个月前 | 反序列化 · Java教程 · 安全编程 · java Java安全 ObjectInputFilter 反序列化过滤 Serialization FilterJava ObjectInputFilter 可以在对象反序列化过程中检查类名、数组长度、对象图深度、引用数和输入字节数。本文用一个白名单场景写出最小过滤器,并用可验证的拒绝案例检查边界。257 收藏
-
从一次 JWT 明明带了却返回 401/403 的生产排查讲清 Spring Security 过滤链、Bearer Token、SecurityContext、权限前缀和 /error 二次拦截。255 收藏
-
文章 · java教程 | 3个月前 | 性能优化 · Java教程 · CompletableFuture · java completablefuture orTimeout completeOnTimeout 接口性能 P95用指标驱动方式讲解 Java CompletableFuture 聚合接口优化:先建立串行调用基线,再改为并发请求、设置超时兜底,最后用 P95、错误率和慢依赖占比验证效果。255 收藏
-
Java 线程池调用 shutdownNow 后,等待队列会被移出,但正在执行的任务只是收到中断请求,并不等于立刻停止。本文从一次停机任务未收敛的现场出发,拆解中断传播、阻塞调用、任务清理和 awaitTermination 验收方法。252 收藏
-
Java Stream 的 mapMulti 适合把一个元素展开为零个或少量结果,尤其适用于带条件分支的解析和提取。本文用订单标签解析示例说明它与 flatMap 的选择、泛型推断、Consumer 生命周期和验收边界。250 收藏
-
Java 管理外部子进程时,isAlive、onExit 和 exitValue 解决的是不同问题。本文用一个可复现的小任务拆解退出状态、异步等待、异常处理与句柄回收边界。249 收藏
-
Java record 没有 setter,并不表示放进 record 的 List、数组或可变对象不会在别处被改动。订单入参一旦把调用方集合或签名数组的引用直接保存,接口进入服务层后仍可能出现内容漂移。用 List.copyOf 固定集合结构、对数组在构造器和访问器两端复制,再用一段小检查覆盖输入侧与输出侧,就能把 record 的边界写得更可靠。247 收藏
-
一篇 Java 线上故障排查教程:用 Arthas dashboard、thread、trace、watch 定位 CPU 飙高和慢方法,强调生产环境小范围增强、参数脱敏、reset 清理和复盘闭环。241 收藏
-
一篇 Java/Spring Boot 可观测性教程:用 Actuator 和 Micrometer 建立 HTTP 延迟、错误率、JVM、连接池和业务 Timer 指标,避免高基数标签,做出能行动的 p95/p99 告警。240 收藏
-
以 Java 21 虚拟线程和 Spring Boot 灰度上线为主线,拆解适用场景、连接池边界、pinning、ThreadLocal 和上线检查清单。239 收藏
-
文章 · java教程 | 3个月前 | 数据库 · 性能优化 · Java教程 · Optional · java 数据库查询 懒加载 optional supplier orElse orElseGetJava Optional 的 orElse 会先计算兜底参数,即使主值已存在也可能触发数据库或远程调用。用订单展示接口复现这个问题,说明 orElseGet、Supplier、异常处理与测试边界。238 收藏