java教程技术文章
-
Java CompletableFuture 使用 whenComplete 记录成功值和异常时,如何保持上游结果语义?本文用代码和边界表说明观察、异常传播及验证方法。439 收藏 -
用 Java StructuredTaskScope 组织多个子任务,讲清部分成功收集、失败处理、关闭时机和资源回收的验收方法。437 收藏 -
CompletableFuture.allOf 返回的是 CompletableFuture,它只负责等待全部任务完成。保留每个子任务的 CompletableFuture,再逐项 join,就能按原顺序收集类型安全的返回值。 437 收藏 -
通过可观察的工厂示例解释 Java Optional.orElse 与 orElseGet 的求值边界,给出默认值成本、副作用、异常语义和代码评审清单,帮助选择真正惰性的默认值写法。436 收藏 -
网络中的计算机想要彼此通信,光有连接还不够,还得给每一台设备分配一个“身份标识”。有了这个标识,数据在传输时才能准确找到接收方,也能明确发送方是谁。在 TCP/IP 协议里,这个标识就是 IP 地址。它的作用很直接:唯一标识一台计算机。当前被广泛使用的版本是 IPv4,采用 4 个字节的二进制数来表432 收藏 -
GridLayout(网格布局管理器)会用横线和竖线把容器切分成 n 行 m 列、大小一致的网格,每个网格里都可以放置一个组件。组件加入容器后,会先落在第1行第1列(左上角)的位置,随后按照第1行从左到右的顺序依次排布;当前一行放满之后,再进入下一行,继续按从左到右的方式放置。它和 FlowLayo431 收藏 -
Java 21 的 SequencedCollection.reversed() 返回反向顺序视图,不必先复制 ArrayList。本文用代码说明视图与快照的差异、修改可见性和并发遍历边界。431 收藏 -
CompletableFuture.allOf 只能告诉你一组并发任务的聚合结果失败,不能直接定位具体任务。本文用 handle 保存每个任务的标识、成功值和原始异常,再结合 allOf 生成可重试、可告警的失败清单。429 收藏 -
Java Semaphore 不会自动校验 release 的许可数量。本文用许可守恒、日志计数和最小并发测试定位多释放、少释放以及中断路径造成的并发泄漏。427 收藏 -
用 DateTimeFormatter 和 ResolverStyle.STRICT 解析 Java 日期,区分格式、时区、无效日期与时间字段,给出可运行的验收代码和常见边界。426 收藏 -
讲清 Java Stream 使用 groupingBy 搭配 maxBy 获取每组最大时间记录的方法,并比较 Optional 展平、toMap 合并、空值和并列时间的处理边界。426 收藏 -
用一个可复现的锁竞争场景,说明 Java ReentrantLock.lockInterruptibly 的等待、中断、异常清理和 finally 释放顺序,避免把线程中断误写成强制解锁。422 收藏 -
在 Swing 组件体系里,除了负责输入的文本类组件,还有一类非常常用的展示型组件,那就是标签组件。说得更直接一点,标签组件主要就是拿来“显示内容”的。在 Swing 中,最常见的标签组件是 JLabel,它既能展示文本,也能显示图像,同时还支持对标签内容进行垂直和水平方向的对齐设置。 JLabel421 收藏 -
Java 21 的 SequencedCollection.reversed 返回反向视图,而不是复制集合。本文用 ArrayList 和 LinkedHashSet 验证首尾操作、修改传播与使用边界。417 收藏 -
BorderLayout(边界布局管理器)是一种较为复杂的布局方式,它将容器划分为五个区域,分别是页头(PAGE_START)、页尾(PAGE_END)、行首(LINE_START)、行尾(LINE_END)、中部(CENTER)。组件可以被放置在这五个区域中的任意一个位置。BorderLayout416 收藏