java教程技术文章
-
Java Semaphore 不会自动校验 release 的许可数量。本文用许可守恒、日志计数和最小并发测试定位多释放、少释放以及中断路径造成的并发泄漏。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 Class-File API 把 class 文件解析为 ClassModel,按需遍历类名、字段、方法和 CodeModel,并处理惰性解析带来的异常边界。419 收藏 -
Java 24+ 的 Class-File API 把 LineNumberTable 映射为 CodeModel 中的 LineNumber 元素。本文用 CodeTransform 只重写指定方法的行号,说明保留字节码、筛选方法和处理调试信息时的边界。418 收藏 -
本文用 JFR RecordingStream 按事件名消费延迟事件,将回调中的 Duration 转成固定分桶的 count、sum、error、P95 与 P99 窗口快照。示例重点处理阈值、字段兼容、回调阻塞、事件对象生命周期、异常与关闭边界。418 收藏 -
Java 21 的 SequencedCollection.reversed 返回反向视图,而不是复制集合。本文用 ArrayList 和 LinkedHashSet 验证首尾操作、修改传播与使用边界。417 收藏