java教程技术文章
-
用原创反射小实验读取 Java 参数的隐式声明标记,区分 isImplicit、isSynthetic 与 isNamePresent,解释构造器参数、编译元数据及框架展示时的注意点。168 收藏 -
JDK 26 预览 API LazyConstant 可以替代常见的双重检查锁,但“最多初始化一次”不等于计算函数绝不重试。本文讲清线程安全、异常重试、空值、递归和长期引用边界。167 收藏 -
Connection接口本质上就是Ja va程序与数据库之间的连接载体。只有先拿到这个连接对象,后续才能真正访问数据库,并对数据表执行各种操作。围绕这一点,Connection接口也提供了一组相关方法,其中比较常用的,见表1。 表1 Connection接口里常见的几个方法 方法声明 功能描述 St165 收藏 -
用 Java 的任务完成队列按完成顺序消费 Future,区分任务异常与队列取空,并在 finally 中可靠关闭线程池。165 收藏 -
从一个用户查询场景拆开 Java Optional.orElseThrow 的默认异常、业务异常供应器、消息来源和空值边界,给出可回归的最小写法。165 收藏 -
文章 · java教程 | 1个月前 | 异常处理 · 并发编程 · Java教程 · 虚拟线程 · java 结构化并发 StructuredTaskScope JDK 26 子任务取消 Joiner
用当前 JDK 26 的 StructuredTaskScope 和 Joiner 实现子任务失败即取消,讲清 join、get、close 与中断响应边界。165 收藏 -
StampedLock 乐观读的安全回退方式是先读取共享字段,再校验 stamp;校验失败后获取读锁,并在锁内重新读取全部字段,最后在 finally 中释放读锁。本文给出最小模板、限时回退和常见误区。165 收藏 -
Java Commons Compress 解压归档时,不能直接把 ArchiveEntry 的名称拼到目标目录后写盘。本文用 Path.normalize 和 startsWith 建立目录边界,再补上目录项、不可读项、流式复制和资源限制。165 收藏 -
用 Java ClassValue 按 Class 延迟缓存元数据,理解 get、computeValue、remove 的生命周期、失效方式与并发边界。165 收藏 -
Java sealed class 的许可列表只描述直接子类型。通过原创类层级示例区分封闭和开放分支,说明反射查询、对象归属及业务准入的不同用途。164 收藏 -
Java 文本块适合保存多行模板,但代码缩进可能混入结果。本文用 String.stripIndent 拆开共同缩进、空行和制表符边界,并对比 indent 的换行处理,给出可运行的判断方法。163 收藏 -
Java 虚拟线程进入 synchronized 并不等于一定发生 pinning。本文按 JDK 版本、JFR 事件和 tracePinnedThreads 堆栈,说明如何确认载体线程是否被占住,以及什么时候该换成 ReentrantLock。163 收藏 -
BigDecimal 无参 divide 遇到 1/3 等非终止小数会抛出 ArithmeticException。本文按金额、比例和精确校验三类场景,说明 scale、RoundingMode 与 MathContext 的选择边界。163 收藏 -
Java Optional.orElseGet 只有在 Optional 为空时才调用默认值供应器,适合避免缓存未命中后的无效计算。本文用配置读取示例拆解 orElse、orElseGet、orElseThrow 的求值和异常边界。162 收藏 -
文章 · java教程 | 2个月前 | 网络编程 · 并发 · Java · websocket · 故障排查 · java websocket httpclient CompletionStage sendClose onClose
Java HttpClient WebSocket 关闭时,sendClose 的 CompletionStage、Listener.onClose 和 onError 可能以不同顺序到达。本文用一个订阅客户端拆解正常关闭、异常断线、状态竞态与重连边界,给出可验证的收尾写法。162 收藏