java教程技术文章
-
文章 · java教程 | 2个月前 | hashmap · 集合 · Java教程 · hashCode · equals · java HashMap map equals hashCode 可变key
本文从一个 HashMap 放入键值对后修改 key 属性,后续 get 返回 null 的现场出发,逐步复现问题,解释 hashCode、equals 和桶定位的关系,并给出不可变 key、稳定 ID、先删后放和单测兜底的修复方案。474 收藏 -
Java 16 起 Stream.toList() 进入生态,但迁移到 Java 21 时要处理空结果、并行行为和序列化返回类型差异,避免线上行为回归。473 收藏 -
从一次 Spring Boot 虚拟线程升级复盘讲起,拆解 JDK 21/23 与 24/25 下 synchronized pinning 的差异、JFR 诊断步骤、代码改造和上线检查清单。472 收藏 -
从一个有界缓冲区的生产消费场景出发,说明 ReentrantLock 条件队列中 await、signal、signalAll 的配合方式,以及如何用队列状态和中断测试确认没有丢通知。468 收藏 -
文章 · java教程 | 1星期前 | Java · 正则表达式 · 性能 · Stream · predicate Java教程 Java Pattern.asMatchPredicate Java正则 Stream过滤
Pattern.asMatchPredicate 能把已编译正则直接变成 Predicate,适合复用在 Stream.filter 和输入校验中。本文拆开 matches 的完整匹配语义、find 的差异与重复编译成本。464 收藏 -
用一个可运行的小例子拆开 Java Map.computeIfAbsent 的 null 语义、递归更新限制和 ConcurrentHashMap 并发边界,避免把缓存未命中误判成已写入。462 收藏 -
Java Stream.toList() 与 Collectors.toList() 都能把流收集成 List,但返回列表的可变性、null 边界和类型推断并不相同。本文用可运行示例说明如何按后续操作选择写法。462 收藏 -
文章 · java教程 | 2个月前 | 时间处理 · instant · Java教程 · 时区转换 · DateTimeFormatter · java DateTimeFormatter java.time 时区处理 ZoneId INSTANT
本文用订单支付时间示例讲清 Java 时间与时区处理:存储用 Instant,展示用 ZoneId,格式化用 DateTimeFormatter,并避开 LocalDateTime 直接跨区传输的偏差。461 收藏 -
TCP和UDP都能完成两台计算机之间的数据通信,而且通信双方同样都需要创建Socket对象。不过,二者在通信方式上有一个很关键的区别。UDP只有发送端和接收端之分,并不强调客户端或服务器端的角色,设备之间可以比较自由地互相发送数据;TCP则不同,它对客户端和服务器端有明确区分,通信建立时,必须先由客460 收藏 -
本文用订单列表统计场景,梳理 Java Stream 的完整处理流程:字段口径、过滤条件、分组汇总、结果校验和常见误区,帮助把零散链式调用整理成可复用的后端数据处理方案。455 收藏 -
文章 · java教程 | 2星期前 | 精度 · Java教程 · BigDecimal · 金额计算 · 异常排查 · 精度 ArithmeticException 金额计算 RoundingMode Java BigDecimal.divide
Java BigDecimal.divide 在除不尽时会抛 ArithmeticException。本文从 10 除 3 的金额分摊场景出发,拆解精确除法、scale、RoundingMode 和零除边界,并给出可复现的验收测试。455 收藏 -
在 Ja va 里,任何对象都有自己的生命周期,线程当然也一样。从 Thread 对象创建完成的那一刻起,这条线程的生命周期就算正式开启了;而当线程任务中的代码正常执行结束,或者在线程运行过程中抛出了未被捕获的异常(Exception)或错误(Error)时,它的生命周期也就随之走到了终点。 在 J454 收藏 -
JComboBox组件被称为下拉框或者组合框,它将所有选项折叠在一起,默认显示的是第一个添加的选项。当用户单击下拉框时,会出现下拉式的选择列表,用户可以从中选择其中一项并显示。 JComboBox 这种下拉框组件,常见的就两种形态:一种是不可编辑,用户只能从已有选项里挑;另一种是可编辑,除了能选现成454 收藏 -
用一个只允许从 0 变为 1 的状态位,拆开 Java VarHandle compareAndExchangeAcquire 的 witness 返回值、acquire 读取语义、失败分支和可验证测试。453 收藏 -
众所周知,Ja va开发桌面应用程序一直不算理想,但Sun公司并没有放弃,于是Sun公司在2008年推出Ja vaFX,来弥补Ja va在桌面应用程序的缺陷。Ja vaFX在发展的过程中核心版本有三个,每个版本的特征如下: ● Ja vaFX 1.0:使用Ja vaFX Script的静态、声明式的452 收藏