-
Java Files.probeContentType(Path) 用已安装的文件类型探测器和系统默认探测器尝试返回 MIME 类型;识别不到时返回 null,发生 I/O 问题时抛出 IOException。本文从最小写法、提供者边界和安全兜底三个方面说明如何正确使用。
-
Java ModuleLayer 的隔离边界由 Configuration 可读图、父层关系、模块 exports/opens 和类加载器映射共同决定。本文用动态插件示例说明 OneLoader、ManyLoaders 与跨层接口设计。
-
Java CDS 默认归档可以复用核心类元数据;固定启动命令的应用还可以用 AppCDS 动态归档覆盖应用类,从而减少启动阶段重复加载。本文给出生成、加载和排查归档失效的最小方案。
-
ConcurrentHashMap 的 size() 返回 int,mappingCount() 返回 long。本文从返回范围、并发更新下的估算语义和业务用途三个角度说明迁移边界:大规模计数优先 mappingCount,普通展示可保留 size,严格控制逻辑不能依赖任一瞬时计数。
-
Java switch 表达式要求覆盖所有可能输入;当枚举分支覆盖全部已知常量时,编译器会插入隐式 default。本文从多模块服务中的状态映射场景出发,说明箭头规则、块体 yield、显式 default、null 边界以及新增枚举常量后的维护取舍。
-
通过 Java AclFileAttributeView 读取并保序展示文件 ACL,解释主体、类型、权限和标志,区分视图不支持、读取失败与空列表,并说明有效访问权限的判断边界。
-
Java instanceof 类型模式可以把类型判断、强制转换和局部变量绑定合并起来。本文从变量作用域、&& 与 || 的短路路径和常见编译错误出发,给出可直接迁移的写法与排查清单。
-
Java 25 的 JEP 512 让小型程序可以省略显式 class 和传统 public static main(String[] args)。本文用一个单文件示例说明实例 main 的写法、java 与 javac 的启动命令、main 入口匹配规则,以及何时应恢复普通类声明。
-
Java 工具方法需要知道是谁调用了它时,可以用 StackWalker.getCallerClass() 获取调用者 Class。本文从 RETAIN_CLASS_REFERENCE 配置开始,说明 getCallerClass、walk、隐藏帧和底部调用栈异常的边界。
-
通过 LinkedHashMap、TreeMap 和下游 Collector,分别控制 Java Stream 分组后的键顺序与组内元素顺序。
-
Map.copyOf 明确拒绝 null 源映射、空键和空值。文章说明输入约束、过滤与默认值的语义选择,并用 HashMap 副本加只读包装保留空值,区分视图、浅拷贝与深度不可变。
-
Java HttpClient 可以用 HttpRequest.BodyPublishers.ofFile(Path) 把本地文件作为请求体发送。本文说明文件请求体的构造关系、Content-Type 设置、异常处理和与响应文件下载的区别。
-
Java Files.isSameFile 判断的是两个 Path 是否定位到同一个文件实体,而不是只比较路径字符串或文件内容。本文说明最小调用方式、相等 Path、不同文件系统 provider、符号链接和 IOException 的边界。
-
讲清 Java ExecutorService.shutdownNow 对排队任务和运行中任务的不同处理方式,并给出可响应中断、等待终止、记录重试任务的关闭方案。
-
用 sealed、permits 和模式匹配 switch 建立封闭的 Java 类型层次,逐项覆盖 record 分支,并说明 null、default、模式支配和类型层次变更后的重新编译边界。