java教程技术文章
-
Apache Commons Collections 的 MultiValuedMap 用一个键关联一个 Collection,可按需求选择列表型或集合型实现。本文说明 put、putAll、get、asMap 的用法,以及从旧 MultiValueMap 迁移时的注意点。 497 收藏 -
Java Commons CSV 中,空字符串是已映射列存在但值为 "";缺失列则要结合 isMapped、isSet 和 isConsistent 判断。本文给出安全读取顺序和不规则行处理方式。285 收藏 -
通过自动表头映射按名称读取Java CSV字段,比较手动与位置绑定,并说明逐条导入、重复表头、空值、资源关闭和事务边界。127 收藏 -
Java StringSubstitutor 遇到变量循环引用时,应先区分变量值递归和变量名递归,再按场景关闭递归、拆分配置并在边界捕获异常。本文用变量图、Java 示例和三个复查指标说明处理方法。383 收藏 -
用 Apache Commons IO Tailer 跟踪日志轮转时,关键是理解 fileRotated 与 fileNotFound 的先后边界,并用 Tailer.Builder 配置编码、轮询间隔、从末尾读取和重新打开策略。298 收藏 -
Java Apache Commons IO 的 Tailer 用 end 参数或 Builder 的 setTailFromEnd 控制起始位置:false 会从文件开头读取,true 会跳到当前末尾等待新增内容。本文结合日志补读、实时监听和文件轮转说明两者区别。415 收藏 -
Java StringSubstitutor 可以用 ${变量名:-默认值} 为未提供的变量设置回退文本。本文说明默认分隔符、空值边界、自定义分隔符和严格解析的选择。304 收藏 -
TreeSet 不是用 equals 直接判断重复,而是沿着 compareTo 或 Comparator.compare 的结果定位元素。本文用一个只比较年龄的场景解释 compare 返回 0 为什么会让第二个对象无法加入,并给出主键加唯一标识的稳定改法与迁移检查清单。190 收藏 -
Java 月度账期不要手写二月天数。使用 YearMonth 表达年月,再调用 atEndOfMonth() 得到月末 LocalDate;需要展示或复核时,用 lengthOfMonth() 和 isLeapYear() 处理闰年差异。472 收藏 -
用 Java Instant.truncatedTo 按分钟截断时间戳,理解支持单位、UTC 截断方向、比较方式与负时间戳边界。229 收藏 -
Java LocalDateTime 本身没有时区信息,使用显式 ZoneOffset 调用 toInstant 可以得到不依赖机器默认时区的绝对时间点。362 收藏 -
Java ZipEntry 的 extra 是 ZIP 条目的原始扩展字节。本文说明如何读取、复制和设置这段元数据,并从长度限制、未知字段和审计记录三个角度避免转存时丢失或误解析。160 收藏 -
Java Deflater 的 nowrap 参数决定是否保留 zlib 包装。本文对比 zlib 与 raw deflate 的数据边界、解压入口以及 GZIP、ZIP 的区别,帮助你正确匹配跨端压缩协议。373 收藏 -
InflaterInputStream.available() 只表示当前是否已到 EOF,未结束时通常返回 1,结束后返回 0,并不代表还剩多少字节。本文用正确的 read() 循环、资源关闭和排查日志说明如何判断压缩流真正结束。271 收藏 -
Java ByteBuffer 默认按大端序读取多字节值。本文从字节序、position、remaining 和视图缓冲区四个排查点说明如何按协议切换大小端并正确读取整数。421 收藏