java教程技术文章
-
Java 11 HttpClient 的重定向策略不会自动替你处理所有跳转。本文用一个带认证头的接口场景,拆开 NEVER、NORMAL、ALWAYS 的差异,说明跨主机跳转时如何避免认证信息误带,并给出可复现的验收清单。395 收藏 -
用 JFR 的事件阈值、一次性录制时长和 jfr 结果读取,捕获 Java 服务一个有限的慢请求窗口,并区分网络等待、锁等待与应用执行线索。395 收藏 -
Java 25 把紧凑对象头从实验能力变成产品能力,但它不是所有服务都应立即打开的开关。本文用对象数量、堆占用、GC 次数和锁竞争四个观察点,说明它节省了什么、可能影响什么,以及如何在生产环境做小范围验证。394 收藏 -
Java MemorySegment 的 Arena 选择,关键看 native memory 是否跨线程、是否需要显式 close,以及对象应该存活多久。本文用对比表和代码说明 confined、shared、auto、global 的适用边界。394 收藏 -
文本组件用于接收用户输入的信息,其中包括文本框(JTextField)、文本域(JTextArea)等,它们都有一个共同父类JTextComponent,JTextComponent是一个抽象类,它提供了文本组件常用的方法,如表1所示。 表1 JTextComponent常用方法 方法声明 功能描述392 收藏 -
文章 · java教程 | 1个月前 | 并发编程 · Java教程 · 虚拟线程 · threadlocal 请求上下文 Java 25 StructuredTaskScope ScopedValue
Java 25 已将 ScopedValue 正式纳入平台 API。本文用一个并发读取请求上下文的场景,说明它与 ThreadLocal 的职责差异、绑定生命周期、StructuredTaskScope 继承规则,以及上线前如何验证预览 API 和不可变数据边界。391 收藏 -
Java 项目拆成模块后,反射访问被拒绝通常不是反射 API 失效,而是 exports、opens 或调用方模块关系没有满足访问边界。本文用最小配置说明如何判断并收窄修复范围。391 收藏 -
FileChannel.map 不是把整个文件装进 Java 堆。处理超大文件时应使用固定窗口、限制活跃映射数量,并处理跨窗口记录;Java 22+ 还可用 MemorySegment 和 Arena 管理生命周期。391 收藏 -
用一个批量校验场景拆开 Java Stream Gatherer 的状态、完成信号、并行语义和测试验收边界。389 收藏 -
Java Primitive Patterns 遇到 int 转 byte 等数值窄化时,不会把信息损失静默变成成功匹配。本文用精确转换、兜底分支和旧 JDK 方案说明如何处理。389 收藏 -
Java 22 的 String Templates 仍属于预览特性,适合用来理解模板处理器、表达式插值和输入校验边界。本文用账单通知示例拆解 STR、转义、异常处理与生产环境的兼容判断。388 收藏 -
用 Java HttpClient 做外部接口调用时,连接复用是否生效不能靠猜。本文从请求超时、sendAsync 调用链和响应体处理入手,给出可观察的验证方法与边界。387 收藏 -
周期任务看起来每分钟执行一次,实际却可能因单次执行超时、未捕获异常或重复创建调度器而失控。本文拆解固定频率调度下的任务不重叠、异常终止和恢复路径,给出可验证的 Java 写法。387 收藏 -
Java 虚拟线程适合高并发、以 HTTP、JDBC 等 I/O 等待为主的任务编排,但不能替代 CPU 并行、连接池和下游限流。本文用代码和边界表说明如何选择。387 收藏 -
Java Pattern.splitAsStream 会丢弃末尾空字段,且流式终结操作期间不能修改输入。本文用可运行代码解释这个行为、输入边界和安全写法。385 收藏