java教程技术文章
-
文章 · java教程 | 2个月前 | 命令行工具 · Java教程 · Java 25 · 语言特性 · Java 25 Compact Source Files instance main JEP 512 java.lang.IO
Java 25 正式交付 Compact Source Files 和 instance main,单文件小工具可以省掉显式 class、static 与 String[] 参数,同时仍使用 java、javac 运行。本文从一个可运行的命令行小程序开始,核对 java.lang.IO、自动导入、参数入口和迁移回普通类时的边界。478 收藏 -
区分 Java 模块系统中 exports 与 opens 的职责,结合 module-info.java、setAccessible、trySetAccessible 和 Module API,给出框架反射排障与最小开放配置方法。478 收藏 -
文章 · java教程 | 2星期前 | JSON · Java · 序列化 · 类型系统 · java 反序列化 jackson sealed interface 多态JSON JsonTypeInfo
Java 多态 JSON 映射的关键不是把 JSON 直接绑定到任意类,而是在 sealed 类型集合、kind 判别字段和 Jackson 反序列化策略之间划清边界。本文给出从旧模型迁移到显式逻辑类型名的做法,并说明未知类型、缺失字段和新增子类型如何回归。478 收藏 -
Java record 可以通过规范化构造器统一完成参数校验、空白清理、大小写转换和范围规范化。本文说明紧凑构造器与显式构造器的写法,并解释替代构造器为什么必须委托到同一条校验路径。477 收藏 -
Java 进程 RSS 持续上涨时,先用 jcmd VM.native_memory 建立基线,再用 summary.diff 或 detail.diff 判断是 JVM 子系统、线程、类元数据还是 NMT 未覆盖的第三方原生内存。476 收藏 -
Java Stream takeWhile 不是筛出全部匹配项,而是在有序流中保留满足谓词的最长连续前缀。本文用具体数据说明首个 false、无状态谓词、unordered 和并行流的边界。476 收藏 -
Java NIO 中 ByteBuffer.flip() 会把当前 position 变成 limit,再把 position 归零,适合把写入态切换为读取态。本文用状态表、代码和边界示意说明 flip 怎么配置,以及如何排查读不到数据、下溢和多轮读写问题。475 收藏 -
使用 Jackson JsonNode 处理 JSON 更新请求时,字段缺失与显式 null 不是同一种状态。本文用 has、get、path、isNull 和 isMissingNode 给出清晰的判断方式,并说明 PATCH 更新时如何选择策略。475 收藏 -
Java 21 的 record pattern 可以递归匹配嵌套 record,并直接提取深层字段。本文用订单、客户和地址三层结构说明最小写法,重点处理 null、var 推断、泛型边界和可读性取舍。475 收藏 -
Java 16 起 Stream.toList() 进入生态,但迁移到 Java 21 时要处理空结果、并行行为和序列化返回类型差异,避免线上行为回归。473 收藏 -
按配置源、前缀键名、Bean 注册、类型转换和校验五层排查 Java Spring 配置绑定失败,附 @ConfigurationProperties、构造器绑定与嵌套校验示例。473 收藏 -
用 Java Normalizer 构建 NFC 名称比较键,区分组合字符、原始展示值和规范键,说明本地运行判断、数据集成与兼容折叠边界。473 收藏 -
Java 月度账期不要手写二月天数。使用 YearMonth 表达年月,再调用 atEndOfMonth() 得到月末 LocalDate;需要展示或复核时,用 lengthOfMonth() 和 isLeapYear() 处理闰年差异。472 收藏 -
Java G1 混合回收暂停不能只看一行总耗时。本文从 Unified Logging 的事件行入手,结合 gc+phases、gc+ergo+cset 和 gc+heap 日志,定位集合选择、根扫描、对象复制与收尾阶段的长暂停来源。470 收藏 -
从一个有界缓冲区的生产消费场景出发,说明 ReentrantLock 条件队列中 await、signal、signalAll 的配合方式,以及如何用队列状态和中断测试确认没有丢通知。468 收藏