Java教程
已收录文章:31篇
-
Java Semaphore 的公平参数不是性能开关,而是等待线程获取许可的排队契约。本文用批量调用限流场景说明 permits、公平与 tryAcquire 超时的边界,给出线程饥饿复现、可靠释放和验收清单。492 收藏
-
线程池满载或进入关闭流程时,任务拒绝不应该只变成一条模糊异常。本文从一个有限队列的订单异步任务池出发,拆解拒绝处理器的错误语义、四种内置策略与调用方重试边界,并给出可验收的 Java 示例。484 收藏
-
文章 · java教程 | 2个月前 | 命令行工具 · Java教程 · Java 25 · 语言特性 · Java 25 Compact Source Files instance main JEP 512 java.lang.IOJava 25 正式交付 Compact Source Files 和 instance main,单文件小工具可以省掉显式 class、static 与 String[] 参数,同时仍使用 java、javac 运行。本文从一个可运行的命令行小程序开始,核对 java.lang.IO、自动导入、参数入口和迁移回普通类时的边界。478 收藏
-
文章 · java教程 | 2个月前 | Java教程 · 异常排查 · 精度 ArithmeticException 金额计算 RoundingMode Java BigDecimal.divideJava BigDecimal.divide 在除不尽时会抛 ArithmeticException。本文从 10 除 3 的金额分摊场景出发,拆解精确除法、scale、RoundingMode 和零除边界,并给出可复现的验收测试。455 收藏
-
Java 25 的 StructuredTaskScope 仍是预览 API,适合把一次请求拆成多个并发子任务,再以结构化的 join、失败传播和超时边界收拢结果。本文用商品详情聚合场景拆开 open、fork、join、TimeoutException 和预览编译参数。428 收藏
-
文章 · java教程 | 2个月前 | 并发编程 · Java教程 · 虚拟线程 · threadlocal 请求上下文 Java 25 StructuredTaskScope ScopedValueJava 25 已将 ScopedValue 正式纳入平台 API。本文用一个并发读取请求上下文的场景,说明它与 ThreadLocal 的职责差异、绑定生命周期、StructuredTaskScope 继承规则,以及上线前如何验证预览 API 和不可变数据边界。391 收藏
-
Java 25 的 Foreign Function & Memory API 用 MemorySegment 表示连续内存,用 Arena 管理堆外区域的生命周期。本文演示 confined、shared 和 automatic arena 的边界,并用关闭后的访问异常完成验收。366 收藏
-
Java 24 将 Class-File API 放进 java.base,ClassFileVersion 可以帮助工具识别 class 文件的 major/minor version。本文从一个可运行的小实验开始,演示读取版本、定位高版本拒绝原因,并延伸到 ClassModel、MethodModel 与生产边界。352 收藏
-
文章 · java教程 | 2个月前 | 故障排查 · Java教程 · 虚拟线程 · synchronized reentrantlock 虚拟线程 JFR Java 21 VirtualThreadPinnedJava 21 虚拟线程并不是开得越多越快。只要把慢 I/O 放进 synchronized,虚拟线程就可能 pin 住承载它的平台线程,吞吐随并发上升反而下降。本文用 JFR 和 tracePinnedThreads 还原定位过程,并给出锁替换与版本边界。343 收藏
-
Java 21 的 switch 模式匹配可以把类型判断和解构写进分支,但传统 switch 遇到 null 仍可能抛 NullPointerException。本文用订单状态路由场景说明 case null、类型覆盖、default 与旧代码兼容边界,并给出可复现的验收测试。338 收藏
-
BigDecimal 的 1.0 和 1.00 数值相等,但 equals 结果不同,放进 HashSet 也会留下两条记录。本文从订单金额比较误判的现场出发,说明 scale、compareTo、HashMap 去重和金额归一化的边界。330 收藏
-
Java 25 的 JEP 507 第三次预览让原始类型进入 instanceof、switch 和模式匹配。本文用数值路由场景拆解 float、double、int 模式与 when 守卫,说明数值提升、null 边界、预览参数和升级验收方法。315 收藏