java教程技术文章
-
用 StringJoiner.setEmptyValue 设置未添加元素时的默认输出,并区分真正空状态、空字符串元素和 null 元素的结果。259 收藏 -
用 Spring Boot 3 的 ProblemDetail 统一批量导入接口错误响应,并把校验错误准确映射回 Excel 行号,兼顾部分成功、事务边界与前端展示。258 收藏 -
Java InstantSource 可以把当前时间变成可注入依赖:生产使用 system,测试使用 fixed,未来或历史场景使用 offset,时间窗口使用 tick;需要时区语义时再转换为 Clock。258 收藏 -
文章 · java教程 | 2个月前 | 反序列化 · Java教程 · 安全编程 · java Java安全 ObjectInputFilter 反序列化过滤 Serialization Filter
Java ObjectInputFilter 可以在对象反序列化过程中检查类名、数组长度、对象图深度、引用数和输入字节数。本文用一个白名单场景写出最小过滤器,并用可验证的拒绝案例检查边界。257 收藏 -
Java Files.readString 读取 UTF-8 配置时出现乱码或首字符异常,通常不是文件内容损坏,而是字符集与 UTF-8 BOM 的边界没有处理好。本文用最小示例区分默认字符集、显式 UTF-8 和 BOM 清理方案。257 收藏 -
Java 的 requires transitive 会把目标模块加入下游的隐式可读性,但不会自动导出所有包。本文用 app、facade、logging 三模块示例,解释下游编译边界、exports 配合关系,以及 javac 和 java 的排查方法。257 收藏 -
Java String.transform 可以把当前字符串交给 Function 处理,并让返回值使用任意泛型类型。本文从签名、字符串转换、数字结果、函数组合、异常传播和空值边界说明怎样正确使用它。257 收藏 -
Jackson 反序列化日期失败,往往不是 JSON 字段不存在,而是输入格式、时区和字段级格式化配置没有对齐。本文从报错现场出发,用 LocalDateTime、Instant 和 OffsetDateTime 三种类型拆开定位路径,并给出可验证的修复方案。256 收藏 -
Java 文件上传的内存风险不只来自文件大小,还和解析阈值、临时目录、并发量及清理结果有关。本文用一个可复核的 Multipart 流程,把配置、代码边界和验收指标串起来。255 收藏 -
DecimalFormat 默认解析结果不一定是 BigDecimal。本文给出 setParseBigDecimal(true) 的完整写法,并说明它与 ParsePosition、格式化小数位、Locale 和线程安全的边界。254 收藏 -
Java Optional.or 使用 Supplier 延迟构造备用 Optional,适合缓存回源、分层配置和多级查找。本文说明惰性执行、or 与 orElseGet 的返回差异,以及 null 和空结果边界。254 收藏 -
Java 线程池调用 shutdownNow 后,等待队列会被移出,但正在执行的任务只是收到中断请求,并不等于立刻停止。本文从一次停机任务未收敛的现场出发,拆解中断传播、阻塞调用、任务清理和 awaitTermination 验收方法。252 收藏 -
Java DateTimeFormatter 的格式化结果可能随默认 Locale 改变。本文用固定模式、Locale.ROOT 和本地化样式对照,说明如何稳定生成接口、日志和用户界面的日期文本。252 收藏 -
Java ReentrantLock 公平模式会优先照顾等待更久的线程,但高竞争下通常吞吐量更低。本文解释排队协调成本、tryLock 边界,并给出可比的公平与非公平锁选择方法。252 收藏 -
Spring Framework 7.0.8 与 6.2.19 修复多项 WebFlux、MVC、WebSocket 会话和资源处理安全问题。本文按依赖盘点、版本选择、回归测试和灰度回滚给出一套不涉及漏洞利用的升级方法。251 收藏