java教程技术文章
-
Java 25 的 StructuredTaskScope 仍是预览 API,适合把一次请求拆成多个并发子任务,再以结构化的 join、失败传播和超时边界收拢结果。本文用商品详情聚合场景拆开 open、fork、join、TimeoutException 和预览编译参数。428 收藏 -
用 Java ParsePosition 处理日期字符串时,getErrorIndex() 可以指出解析失败的字符下标;本文同时区分 getIndex()、严格日期校验和未消费尾部。428 收藏 -
Java Semaphore 不会自动校验 release 的许可数量。本文用许可守恒、日志计数和最小并发测试定位多释放、少释放以及中断路径造成的并发泄漏。427 收藏 -
Java 26 API 可按模块、包、类型逐层定位。文章以 Map、String 和 Connection 为例,说明完整类型名、模块导出与包名的区别,并提供不连接数据库的模块引用练习。427 收藏 -
用 DateTimeFormatter 和 ResolverStyle.STRICT 解析 Java 日期,区分格式、时区、无效日期与时间字段,给出可运行的验收代码和常见边界。426 收藏 -
讲清 Java Stream 使用 groupingBy 搭配 maxBy 获取每组最大时间记录的方法,并比较 Optional 展平、toMap 合并、空值和并列时间的处理边界。426 收藏 -
Java dayOfWeekInMonth 可定位每月第几个指定星期,但宽松规则可能产生跨月日期。本文提供 YearMonth 与 Optional 包装示例,说明第五次不存在时的返回方式及预约界面的状态处理。426 收藏 -
用 Java 25 的 StructuredTaskScope 组织 fork、join、close,明确并发子任务的共同完成、失败、超时和取消边界。425 收藏 -
用一个可复现的锁竞争场景,说明 Java ReentrantLock.lockInterruptibly 的等待、中断、异常清理和 finally 释放顺序,避免把线程中断误写成强制解锁。422 收藏 -
Java record 和 Lombok @Data 都能减少数据类样板代码,但它们表达的对象契约不同。本文从不可变语义、访问器、继承、框架绑定和迁移成本比较两种方案,并给出 DTO、配置对象与领域实体的选择规则。422 收藏 -
在 Swing 组件体系里,除了负责输入的文本类组件,还有一类非常常用的展示型组件,那就是标签组件。说得更直接一点,标签组件主要就是拿来“显示内容”的。在 Swing 中,最常见的标签组件是 JLabel,它既能展示文本,也能显示图像,同时还支持对标签内容进行垂直和水平方向的对齐设置。 JLabel421 收藏 -
Java ByteBuffer 默认按大端序读取多字节值。本文从字节序、position、remaining 和视图缓冲区四个排查点说明如何按协议切换大小端并正确读取整数。421 收藏 -
Java NIO 可以在 Files.newDirectoryStream 中直接传入 glob,只筛选当前目录中匹配文件名的目录项。本文说明常见通配符、资源关闭、异常处理,以及 glob 与递归遍历和自定义过滤器的边界。421 收藏 -
用 PropertyChangeSupport 的按属性重载,只接收 name 属性的变化,并通过一个小型 Java Bean 说明注册、触发和移除监听器的完整写法。420 收藏 -
Java 虚拟线程在 JDK 21 及更早版本中,如果在 synchronized 持锁期间发生阻塞,可能把 carrier 一起占住。本文用最小示例解释 pinned 的成因、JDK 24+ 的版本变化、ReentrantLock 改写边界,以及 JFR 和 jcmd 的观察方法。420 收藏