java教程技术文章
-
文章 · java教程 | 1个月前 | Java教程 · 异常排查 · 精度 ArithmeticException 金额计算 RoundingMode Java BigDecimal.divide
Java BigDecimal.divide 在除不尽时会抛 ArithmeticException。本文从 10 除 3 的金额分摊场景出发,拆解精确除法、scale、RoundingMode 和零除边界,并给出可复现的验收测试。455 收藏 -
Java ServiceLoader 在模块路径下找不到 provider,通常不是接口实现消失,而是 uses、provides、模块路径或 provider 实例化条件没有同时满足。本文用最小模块示例拆开排查。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 收藏 -
Swing组件中不仅具有JFrame和JDialog这样的顶级窗口,还提供了一些面板组件(也称之为中间容器),这些面板组件不能单独存在,只能放置在顶级窗口容器中。其中最常见的面板组件有两种:JPanel和JScrollPane,接下来分别来介绍这两种面板组件。 1.JPanel JPanel面板组件452 收藏 -
用 CompletableFuture.allOf 等待并行任务,再用 handle 把成功值和失败原因统一成结果对象,最后按原顺序收集,避免一个异常吞掉其他已完成结果。452 收藏 -
BigDecimal 的 equals 同时比较数值和 scale,而 compareTo 只比较数值。本文用 2.0 与 2.00 说明条件判断、规范化和 HashSet、TreeSet 的选择边界。452 收藏 -
用 Java NIO AsynchronousFileChannel 写文件时,连续提交回调可能让任务堆积。本文用批量写入、单飞窗口和可复现吞吐基线,说明如何控制并发、等待完成并验证结果。451 收藏 -
Java虚拟线程适合承载大量等待型请求。本文用按任务创建、资源闸门和有界CPU执行器,说明阻塞I/O服务的线程模型与迁移边界。451 收藏 -
Java虚拟线程支持ThreadLocal,但不适合用它缓存连接、大对象或可复用资源。本文说明状态隔离、remove清理、继承语义与迁移检查边界。451 收藏 -
解释 Java record 作为 HashMap 键时查询失败的原因,覆盖 equals、hashCode、一致性约束、可变字段与嵌套对象的排查方法。449 收藏 -
批处理任务常常不是一次屏障就能解决:参与者会动态加入,也可能提前退出。本文用 Java Phaser 写一个三阶段批处理示例,核对 register、arrive、onAdvance 和 forceTermination 的职责与边界。449 收藏 -
Java 虚拟线程解决的是大量任务在阻塞等待时的并发容量,不会增加 CPU 核心,也不会让单个计算更快。本文用载体线程、调度器和执行器示例说明 CPU 密集任务的正确拆分方式。448 收藏