#Java
共 39 篇文章
developmentOnly 选错变体
Boot 4.0.8、4.1.1 的开发依赖配置缺少运行时属性,可能导致 Gradle 选错变体或歧义。补齐已有配置属性,同时保持开发依赖的打包排除规则。
Java BigDecimal 数值相同,equals 却返回 false
BigDecimal 的 equals 同时检查数值和 scale。按数值比较使用 compareTo,集合查找则需要一致的键规范化规则,并保留原来的精度与展示约定。
嵌套 JAR 扫描报 EOF
Spring Boot 嵌套 JAR 扫描报 ZLIB EOF,可能来自 NestedByteChannel 部分读取后返回零。确认读取路径,再选兼容的展开布局或实际包含修复的版本。
pgJDBC 查询 JSONB 问号运算符时报参数未绑定
PreparedStatement 会把单问号当作值参数。JSONB 运算符用 ?? 转义,真正的占位符继续绑定,并核对 ORM 到 JDBC 的解析层。
HikariCP 长任务后 MySQL 通信失败:连接已借出却长时间没有 SQL
区分池内空闲和任务持有连接;核对会话与网络超时,避免用 maxLifetime 或自动重连掩盖事务边界问题。
Java 把 int[] 传给 Arrays.asList 后列表只有一个元素
int[] 会作为一个数组元素进入 Arrays.asList,不能自动逐项装箱。用准确泛型确认结构,再显式转换为整数列表。
Java String.split(".") 返回空数组,读取第一个元素时报越界
String.split 的句点参数是正则通配符,配合默认移除尾部空字段会得到空数组。转义字面句点,再按字段契约决定是否保留末尾空值。
Gradle 8.1.1 在 Java 21 上报 Unsupported class file major version 65
Gradle 运行 JVM 与 Wrapper 版本不兼容;区分 Java 21 工具链支持和运行支持,检查实际启动入口并选择配套版本。
Java 用 Supplier 返回同一个 Stream,第二次 sorted 抛出 IllegalStateException
Supplier 返回已有 Stream 引用时仍会复用同一条流。独立计算应从数据源分别创建流,连续处理则串成一条链,并保留资源与数据快照边界。
Java 修改 subList 后原列表也变了,继续迭代时报并发修改异常
辨认 subList 区间视图与独立副本,按业务选择复制片段或通过活动 ListIterator 修改,保留浅拷贝和失效视图边界。
Java BigDecimal 已设置小数位,divide 仍报 Non-terminating decimal expansion
BigDecimal 精确除法可能在 setScale 执行前就因无限循环小数失败。直接指定除法的 scale 和舍入规则,并区分小数位、有效数字及被除数 scale。
Secret 设置 0400 却变成 0440,JMX 拒绝密码文件:核对 fsGroup
Secret 密码文件从 0400 变为 0440 时,检查 fsGroup 与实际属主,按 JMX 限制准备应用私有文件,并处理启动失败和密码轮换。
Java 整数列表调用 remove(2),删掉了第三项而不是数值 2
整数参数会匹配按索引删除的重载。使用 Integer.valueOf 明确按值删除,并区分首次匹配、全部重复项和目标不存在的情况。
Java 对 Arrays.asList 返回的列表调用迭代器 remove 报 UnsupportedOperationException
Arrays.asList 返回固定大小的数组视图,迭代器不能删除元素。按需复制为 ArrayList,并检查原数组关联、元素引用与迭代器调用顺序。
Java Collectors.toMap 报 IllegalStateException: Duplicate key
Java 二参数 toMap 遇到相等的映射键会抛出异常。明确唯一性或合并规则,安全合并列表,并区分收集结果与业务处理的副作用。
Maven 部分 LangChain4j SNAPSHOT 找不到:BOM 与 beta 模块版本不同
LangChain4j 部分模块与 BOM 不一定使用相同 beta 后缀。遇到 Non-resolvable import POM 时先核对完整坐标和 BOM,再区分仓库策略与本地失败缓存。
Java replaceAll 替换值含美元符号时报 Illegal group reference
Java replaceAll 的替换字符串有捕获组引用和反斜杠转义规则。字面替换值使用 Matcher.quoteReplacement,区分模式引用与替换引用,避免破坏原本需要的捕获组模板。


