java教程技术文章
-
介绍 Java Gradle 项目如何使用 libs.versions.toml 集中维护依赖版本,并结合 BOM、平台和 dependency constraints 处理版本对齐与解析排查。232 收藏 -
从 dependencies、dependencyManagement、依赖树、BOM 和作用域五个边界说明 Java Maven 依赖管理怎样处理,帮助定位传递依赖冲突并统一多模块版本。382 收藏 -
CompletableFuture.delayedExecutor 负责延迟触发,不是业务任务本身的线程池。本文用 Java 12+ 示例拆开触发器、基础 Executor、取消和异常边界,说明怎样安排可控的延迟任务。465 收藏 -
Java 虚拟线程出现 BLOCKED 或吞吐下降时,先区分普通等待、载体线程固定和下游资源耗尽,再按 JDK 21–23 与 JDK 24+ 的差异使用线程转储、JFR、Semaphore 和资源边界控制。493 收藏 -
文章 · java教程 | 2星期前 | Java · 异步编程 · 性能排查 · java httpclient completablefuture 异步超时 HttpTimeoutException sendAsync
Java HttpClient 的 connectTimeout 只约束建立新连接,HttpRequest.timeout 才是请求级截止时间。本文用 sendAsync 示例区分两类超时,说明 CompletableFuture 的异常分类、取消边界和 p95/p99 指标记录方式。485 收藏 -
按配置源、前缀键名、Bean 注册、类型转换和校验五层排查 Java Spring 配置绑定失败,附 @ConfigurationProperties、构造器绑定与嵌套校验示例。473 收藏 -
区分 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 收藏