java教程技术文章
-
区分 JDBC executeBatch 与事务 commit,给出分块执行、最后提交一次的原创示例,解释批更新计数、回滚失败、提交结果未知和分块提交的业务恢复边界。150 收藏 -
文章 · java教程 | 2星期前 | Java · 事务 · 代理 · spring · 排错 · java Spring事务 @Transactional TransactionTemplate 事务代理 自调用
Spring 默认 proxy 模式只拦截从代理进入的外部调用,同一个 Bean 内部的 this 自调用会绕过 @Transactional。本文用调用关系图和代码说明如何拆分服务、显式走代理、使用 TransactionTemplate,以及何时考虑 AspectJ。114 收藏 -
Java ProcessBuilder 启动外部命令后,先用 start 得到 Process,再用 waitFor 等待结束并读取退出码;同时根据是否需要区分 stdout 与 stderr,选择双流读取或 redirectErrorStream(true)。192 收藏 -
围绕 JDK 26 AOT 启动问题,区分缓存失效与业务启动失败,提供独立训练示例、自动降级及严格模式命令,并说明制品对应、训练副作用、重建和回退的处理边界。484 收藏 -
Java 26 迁移不要只看编译是否通过。本文把弃用 API 清单拆成已移除、标记待移除和内部 API 三类,再用 jdeprscan、jdeps 与 javac --release 26 建立可追踪的构建门禁。441 收藏 -
JDK 26 通过 JEP 522 减少 G1 写屏障与 GC 后台线程之间的同步。本文用统一基线、GC 日志、JFR 和业务指标,说明怎样判断高吞吐优化是否在自己的负载上兑现。181 收藏 -
JDK 26 中启用 Shenandoah 不等于默认使用分代模式。本文说明 generational 与 satb 的显式选择、构建支持、启发式限制以及同条件对照和回退方法。250 收藏 -
JDK 26 Foreign Function & Memory API 中,Arena 决定 native memory 的生命周期。本文用 confined、shared、auto 和 global 对比说明如何选择类型、绑定作用域,并避免关闭过早或长期不释放。211 收藏 -
JDK 26 迁移时要区分 x86_32 与 x86_64。本文从 JEP 503 的版本边界出发,检查构建矩阵、native 依赖和运行探针,给出升级、保留旧运行时或迁移 64 位的判断方法。485 收藏 -
JDK 26 使用 Java 24 引入的 Stream Gatherers,把窗口、扫描、映射和自定义状态组合进同一条流管道。本文按输入输出、andThen、生命周期、并行与落地边界说明怎样选择组合方式。190 收藏 -
JDK 26 为 java.net.http.HttpClient 提供 HTTP/3 能力,但迁移重点不是改一行协议常量,而是核对 HTTPS、代理、TLS、服务端能力与降级策略。本文给出可执行的评估矩阵和灰度清单。114 收藏 -
JDK 26 的 JEP 530 第四次预览把基本类型带入更多模式匹配场景。本文从旧写法的分支基线出发,解释 primitive pattern、instanceof 安全转换、switch 的 case 与 when,以及 Object、包装类型和 null 的装箱边界。492 收藏 -
JDK 26 的 JEP 516 让 AOT 缓存中的 Java 对象可以用与 GC 无关的格式顺序加载。本文按训练、组装、生产三个阶段说明怎样减少启动与预热工作,以及缓存失配时应该重建的边界。134 收藏 -
Java 虚拟线程 pinned 定位应先区分运行版本,再结合 JFR 事件与线程转储,记录时间窗口、调用栈和证据边界,避免把等待或同步关键字直接当成钉住结论。158 收藏 -
Java 服务变慢时,使用 jcmd Thread.print -l 获取线程状态、锁信息和栈帧,按 BLOCKED、WAITING、TIMED_WAITING 与 RUNNABLE 分组,再结合锁拥有者和多次采样定位真正的阻塞。241 收藏