java教程技术文章
-
Java Double.isFinite 对有限值返回 true,对 NaN 和正负 Infinity 返回 false。本文说明怎样在计算结果、业务范围和序列化边界之间设置判断,并区分 NaN、Infinity 与 -0.0。461 收藏 -
Java 25 的 StructuredTaskScope 仍是 preview API。本文用一个小型后端实验说明作用域取消如何中断未完成子任务,区分失败、超时、join 与 close 的结果,并给出正确响应 InterruptedException 的代码边界。460 收藏 -
用 Maven toolchains 把项目需要的 JDK 从 Maven 运行环境中解耦:配置 toolchains.xml、声明匹配条件,并处理版本范围、vendor 和 CI 路径边界。458 收藏 -
Java JFR 自定义事件的关键不是把日志换一种格式,而是把事件类型、业务字段、持续时间和 Recording 采集边界放进同一套 JVM 诊断模型。本文从一个慢操作诊断场景出发,讲清 Event 定义、shouldCommit、begin/end、commit 与 Recording 的职责。456 收藏 -
文章 · java教程 | 3星期前 | Java · 异常处理 · try-with-resources IOException Java InputStream.transferTo Java 字节流复制 OutputStream
用 Java InputStream.transferTo 把输入流复制到 OutputStream,理解返回字节数、流关闭责任、IOException 与部分写入边界,并给出文件、响应流和进程流的处理方式。455 收藏 -
用 HttpRequest.Builder.timeout 为单个 Java HttpClient 请求设置独立时限,区分 connectTimeout、请求超时、HTTP 状态码与同步异步异常处理。454 收藏 -
Java System.Logger 怎样避免低级别日志提前构造复杂参数?本文拆开 isLoggable、Supplier 和日志后端的责任边界,给出两种写法、选择表与常见误区。454 收藏 -
Java Arrays.compareUnsigned 可按无符号字节的字典序比较两个 byte 数组。本文说明完整数组与范围重载、三态返回值、前缀边界和排序中的使用方式。453 收藏 -
区分 Java 泛型记录的静态类型推断与组件值匹配,比较显式实参、var、通配符和嵌套模式,说明未经检查转换及空值边界。452 收藏 -
用 Java jcmd 排查运行中 JVM 的线程问题:先通过 jcmd -l 确认 PID,再用 Thread.print -l 查看线程栈和并发锁,必要时用 Thread.dump_to_file 导出 plain 或 JSON 转储,并说明权限、容器与结果判断边界。452 收藏 -
文章 · java教程 | 3星期前 | 异常处理 · 工程实践 · java IOException 目录遍历 walkFileTree FileVisitor postVisitDirectory
Java walkFileTree 的 postVisitDirectory 不只在目录正常遍历后调用,目录迭代提前结束时也会带着 IOException 进入该回调。本文用最小 Visitor 说明 exc 的判断、继续与终止的取舍,以及批量文件任务如何保存部分结果并支持恢复。450 收藏 -
writeUTF 使用 modified UTF-8 并用两字节保存长度,编码后超过 65535 字节就会抛出 UTFDataFormatException。本文说明如何预判限制,并给出长文本改用长度加 UTF-8 字节的写读方案。450 收藏 -
Java Map.computeIfAbsent 的映射函数执行期间不应修改当前 Map。本文从外层写回时机、同键递归和不同 Map 实现的异常差异出发,给出纯计算、分阶段写入和回滚复查的排障手册。450 收藏 -
Java 25 的 ScopedValue 适合把只读请求上下文传给调用链和结构化子任务。本文用不可变 record、StructuredTaskScope 和嵌套作用域说明绑定、继承、重绑定及预览 API 边界。449 收藏 -
用 Introspector 取得 BeanInfo 并遍历 PropertyDescriptor,说明属性名、类型、读写方法与只读属性的处理,以及字段扫描、继承范围和业务筛选的区别。447 收藏