java教程技术文章
-
Java SubmissionPublisher 遇到慢订阅者时,不是简单地把消息无限堆积。本文比较 submit 与 offer 的背压、等待、丢弃和重试语义,并给出可观测的处理写法。205 收藏 -
Java Matcher.hitEnd() 只能说明最近一次匹配触及输入末尾,不能单独证明数据被截断。本文用失败匹配、成功匹配和 requireEnd() 三种结果,讲清如何判断是否需要等待更多输入。354 收藏 -
Java Package.getImplementationVendor 读取运行时包的实现供应商,未知时返回null。本文给出目标类读取和空值处理示例,解释清单属性、类加载器及命名模块的差异,避免把元数据误作身份认证。310 收藏 -
Java HttpClient 保存大响应时,直接落盘优先选 BodyHandlers.ofFile;需要检查状态码、限制大小或自定义处理时改用 ofInputStream 配合缓冲复制。本文比较两种方案的响应时机、资源责任与失败清理边界。192 收藏 -
Java 虚拟线程不会自动停止超时任务。本文用 Future.get 超时、cancel(true)、中断响应和 finally 清理串起一条可取消链路,并区分等待超时、任务取消、外部中断和任务异常。434 收藏 -
Java StructuredTaskScope 默认偏向全部成功或任一成功。本文用自定义 Joiner 在 onComplete 中只收集 SUCCESS 子任务,说明线程安全容器、FAILED 与 UNAVAILABLE 状态、超时策略和 JDK 预览 API 边界。398 收藏 -
Java ModuleDescriptor.Provides 可通过 service() 和 providers() 读取服务类型及提供者或工厂的二进制类名。本文给出描述符遍历、排序副本和运行时入口写法,说明未命名模块与声明清单的范围。176 收藏 -
Java 25 允许在 super(...) 或 this(...) 前准备参数、校验输入并初始化必要字段,本文用边界示例说明哪些访问可行、哪些访问仍会被禁止。212 收藏 -
Java 25 的 JEP 512 让小型程序可以省略显式 class 和传统 public static main(String[] args)。本文用一个单文件示例说明实例 main 的写法、java 与 javac 的启动命令、main 入口匹配规则,以及何时应恢复普通类声明。106 收藏 -
Java String.indent() 不只是给每行前面加空格,它会先按 lines() 处理文本,再为每个结果行追加 LF。因此没有末尾换行的输入调用 indent 后通常会多出一个换行符。本文说明正负缩进、CRLF/LF 规范化和保留末尾换行的写法。173 收藏 -
使用 Java NumberFormat 工厂按 Locale 创建紧凑数字格式器,解释 SHORT/LONG、小数位和任务实例复用,并保留原始数值用于存储和计算。266 收藏 -
Java String.lines() 可以把包含 CRLF、LF 和 CR 的混合文本统一拆成不带行终止符的行流。本文说明它的识别范围、空文本与末尾换行边界,并给出按 LF 导出规范化文本的写法。372 收藏 -
MappedByteBuffer.load() 是尽力把映射内容预取到物理内存,可能触发缺页和 I/O;isLoaded() 只返回当前驻留状态的提示,false 也不代表内容一定不在内存中。本文用最小映射示例比较两者职责、工作负载和操作系统边界。243 收藏 -
说明 Java MappedByteBuffer.force(index, length) 如何使用映射内相对索引,给出非零映射起点的更新示例,并区分容量约束、底层写出粒度和事务保证。330 收藏 -
Java ByteBuffer 的 duplicate() 与 slice() 都共享底层字节,但在 position、limit、capacity、mark 和字节序上有不同使用边界。本文用示例说明如何选择视图。498 收藏