java教程技术文章
-
Java CDS 默认归档可以复用核心类元数据;固定启动命令的应用还可以用 AppCDS 动态归档覆盖应用类,从而减少启动阶段重复加载。本文给出生成、加载和排查归档失效的最小方案。112 收藏 -
围绕 Spring Boot Actuator 的 HTTP 端点暴露,说明 include、exclude、health 详情可见性与 Spring Security 访问边界的配置方式。389 收藏 -
用一个 Java 多语言小项目说明 ResourceBundle.Control 如何控制候选 Locale、默认 Locale 回退和 root 资源包,避免缺少翻译时落到不期望的语言。118 收藏 -
Java System.Logger 怎样避免低级别日志提前构造复杂参数?本文拆开 isLoggable、Supplier 和日志后端的责任边界,给出两种写法、选择表与常见误区。454 收藏 -
从 lookup()、in() 到 privateLookupIn(),梳理 Java MethodHandles.Lookup 在同模块与跨模块场景中的权限变化。276 收藏 -
Java VarHandle 的 acquire/release 不是“弱版 volatile”的简单替换:写线程用 setRelease 发布状态,读线程必须用同一个状态变量的 getAcquire 观察到发布值,随后读取的数据才获得对应的排序与可见性保证。本文用一个发布数据的小例子说明配对关系和排查清单。151 收藏 -
Java 9 起可以用 Matcher.replaceAll(Function) 按每次匹配的捕获组动态生成替换文本。本文说明从固定字符串迁移的写法、null 与空字符串边界、特殊字符转义和 Matcher 状态注意事项。 193 收藏 -
Java Map.copyOf 可以把现有 Map 固定为拒绝 null、不能修改且不随源 Map 后续变化的不可变映射快照。本文对比只读视图,说明 null、浅复制和迭代顺序边界,并给出迁移取舍。175 收藏 -
Java Files.getLastModifiedTime 默认会按目标对象读取符号链接的时间;要读取链接目录项自身,应传入 LinkOption.NOFOLLOW_LINKS。本文结合一次文件时间排查,说明两种语义、异常边界和封装方式。298 收藏 -
Java Virtual Threads 适合以每任务线程承接等待型工作,而非建立固定虚拟工作池。本文用有限批次与提交窗口说明准入控制,结合完成队列、Future 取消、客户端超时和执行器关闭,明确依赖容量与收尾边界。318 收藏 -
Java ModuleLayer 的隔离边界由 Configuration 可读图、父层关系、模块 exports/opens 和类加载器映射共同决定。本文用动态插件示例说明 OneLoader、ManyLoaders 与跨层接口设计。112 收藏 -
Java Optional.or 使用 Supplier 延迟构造备用 Optional,适合缓存回源、分层配置和多级查找。本文说明惰性执行、or 与 orElseGet 的返回差异,以及 null 和空结果边界。254 收藏 -
Java Pattern 命名捕获组通过字段名称取值,配合非捕获组减少对数字组号的依赖。结合文件名解析示例,说明可选字段、匹配状态、错误分类和规则变更时的字段契约。158 收藏 -
Files.mismatch 返回的是两个文件首个不一致字节的 0 起始偏移;完全一致返回 -1L,较短文件是相同前缀时返回较短文件的字节数。本文用 Java 示例说明大文件比较时如何正确解释这个 long 值。159 收藏 -
Java Spliterator.trySplit 会返回覆盖部分剩余元素的子 Spliterator,同时缩小当前对象的覆盖范围。本文用批次阈值说明 trySplit、estimateSize、ORDERED 与 SUBSIZED 的关系,并处理返回 null 和线程归属边界。239 收藏