java教程技术文章
-
Java Pattern 适合长期复用,Matcher 则携带可变匹配状态。本文比较一次性调用、顺序批处理和 ThreadLocal 三种方式,说明如何用 reset 复用 Matcher,同时避开多线程共享和输入生命周期问题。307 收藏 -
区分虚拟线程中的锁竞争与载体固定,说明JDK 24的JEP 491变化,用缓存快照示例讲解缩短临界区的条件,并提示并发刷新和原子业务的一致性边界。161 收藏 -
用 Java Stream 的 groupingBy 和 maxBy 按部门分组并保留工资最高的 Employee,说明 Optional、并列最大值、空输入和并行流边界。441 收藏 -
Java record 紧凑构造器可在隐式字段赋值前完成 null 检查、空白清理、大小写统一与业务不变量校验,让 accessor、equals 和序列化看到稳定状态。435 收藏 -
Java CompletableFuture 合并两个异步结果时,优先用 thenCombine 让两个阶段正常完成后生成新值;需要切换线程池时使用 thenCombineAsync,并区分无返回值组合、allOf、异常传播和 join 的使用边界。280 收藏 -
说明 Java AES/GCM 中 AEAD 标签的单位、拆分与拼接方式,以及标签校验失败时的正确处理边界。147 收藏 -
Java KeyStore 可以同时保存私钥、对称密钥和受信任证书。本文用 isKeyEntry、isCertificateEntry 和 getEntry 区分三类 Entry,并说明各自应该读取的内容与保护参数边界。144 收藏 -
用 Java BreakIterator 找到完整字符边界,安全截断组合字符、补充字符和表情序列,并说明它与像素宽度测量的区别。390 收藏 -
Java AtomicStampedReference 把对象引用和 int stamp 原子地绑定在一起。本文用 A→B→A 的场景说明只比较引用为什么会漏掉 ABA,再用 get 与 compareAndSet 同时校验引用身份和 stamp,给出更新版本号及使用边界。245 收藏 -
用 Java Normalizer 构建 NFC 名称比较键,区分组合字符、原始展示值和规范键,说明本地运行判断、数据集成与兼容折叠边界。473 收藏 -
ExecutorCompletionService 把任务提交和结果消费分开,适合多个 Callable 并发执行后按实际完成顺序取结果。本文用最小 Java 示例说明 take、poll、Future.get 的配合方式,以及异常、超时和线程池关闭边界。146 收藏 -
Java Flow 的 request(long) 不是暂停线程,而是增加订阅未满足需求。本文从 onNext 停滞现象出发,解释固定窗口、半窗补请求、非法参数,以及 HttpClient BodySubscriber 的继续请求与取消边界。176 收藏 -
ByteBuffer flip 与 rewind 对比:理解 position、limit 和 capacity,用写后读取与从头重读示例说明选择规则,避免重复 flip 和误读容量尾部。314 收藏 -
Java NIO 可以在 Files.newDirectoryStream 中直接传入 glob,只筛选当前目录中匹配文件名的目录项。本文说明常见通配符、资源关闭、异常处理,以及 glob 与递归遍历和自定义过滤器的边界。421 收藏 -
Java HttpClient 可以用 HttpRequest.BodyPublishers.ofFile(Path) 把本地文件作为请求体发送。本文说明文件请求体的构造关系、Content-Type 设置、异常处理和与响应文件下载的区别。103 收藏