java教程技术文章
-
虚拟线程可以承载大量阻塞任务,但不会增加数据库连接数。本文用连接池、Semaphore 和等待指标拆开说明 Java 并发上限该怎么设。272 收藏 -
文章 · java教程 | 2个月前 | 面向对象 · Java教程 · Java 25 · 语言特性 · Java 25 JEP 513 Flexible Constructor Bodies super 构造器 Java 构造器
Java 25 将 Flexible Constructor Bodies 变成永久特性,构造器可以在 super() 或 this() 前执行不依赖实例的校验和参数准备。本文用订单金额校验和继承构造器示例,讲清可写什么、不能引用什么,以及从 Java 24 预览代码迁移时要检查的边界。271 收藏 -
InflaterInputStream.available() 只表示当前是否已到 EOF,未结束时通常返回 1,结束后返回 0,并不代表还剩多少字节。本文用正确的 read() 循环、资源关闭和排查日志说明如何判断压缩流真正结束。271 收藏 -
Java HttpClient 的响应头从 HttpResponse.headers() 取得,再按需求使用 firstValue、allValues 或 map。本文用一段最小示例说明单值、多值、大小写和缺失响应头的处理边界。271 收藏 -
Java 25 将灵活构造器正式化,构造器可以在 super 或 this 调用前做不依赖实例的计算、参数校验和字段初始化。本文用一个继承场景拆解新语法、旧版本编译边界、字段访问限制与迁移检查。270 收藏 -
通过一次支付处理中状态被误判为失败的复盘,演示如何用 Java sealed interface、record 与模式匹配 switch 固定结果集合、获得编译期穷尽检查,并设计同模块扩展边界。270 收藏 -
文章 · java教程 | 2个月前 | 依赖管理 · Java · JVM · 故障排查 · java 类加载器 ClassNotFoundException NoClassDefFoundError 依赖排查
代码在编译阶段明明能找到类,部署后却抛出 NoClassDefFoundError,通常不是类名写错,而是运行时类路径、传递依赖或初始化阶段出了差异。本文用一个可复现的启动故障,拆开编译期可见、运行期加载和初始化失败三个边界,给出定位与修复检查单。269 收藏 -
Java record 紧凑构造器应校验和规范化参数,正常结束后再隐式赋值组件字段。本文结合字符串与列表实例,说明局部不变量、集合复制和外部业务检查的职责。269 收藏 -
ServerSocket对象能够用来搭建服务端程序,但光有服务端,通信这件事其实还跑不起来,还得有客户端配合完成交互。为了解决这个问题,JDK专门提供了一个Socket类,用来实现TCP客户端程序。查阅API文档会发现,Socket类同样准备了多个构造方法,下面就围绕其中几种常用构造方法展开说明。268 收藏 -
Oracle 计划提高 Java 安全更新频率。本文结合 JDK 26.0.2.1 的安全基线,说明团队如何固定 JDK 版本、安排回归窗口,并保留可执行的回滚记录。268 收藏 -
并行 Stream 最容易出错的地方,是在 forEach 里直接修改外部 ArrayList、HashMap 或计数器。本文从共享可变状态出发,说明如何用 map、toList、groupingBy 和 groupingByConcurrent 组织结果,并解释什么时候顺序流反而更合适。268 收藏 -
BigDecimal.divide 不指定舍入规则时,遇到 1/3 这类非终止小数会抛出 ArithmeticException。本文按金额小数位、有效数字和严格校验三种场景说明如何选择 scale、MathContext 与 RoundingMode。266 收藏 -
Java sealed interface 通过 permits 限制直接实现者,并要求它们用 final、sealed 或 non-sealed 明确后续扩展边界。本文结合层级、模块包约束和二进制兼容性说明如何正确设计。266 收藏 -
Java flatMap 可以自然展开空集合,但 null 子集合和 null 元素需要不同策略。通过标签汇总示例说明空流、参数拒绝、职责边界与接入清单。266 收藏 -
用 DateTimeFormatterBuilder 分别构造多种日期格式,按具体格式优先严格解析,并处理 LocalDate、LocalDateTime 与非法输入边界。266 收藏