java教程技术文章
-
众所周知,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 record 作为 HashMap 键时查询失败的原因,覆盖 equals、hashCode、一致性约束、可变字段与嵌套对象的排查方法。449 收藏 -
批处理任务常常不是一次屏障就能解决:参与者会动态加入,也可能提前退出。本文用 Java Phaser 写一个三阶段批处理示例,核对 register、arrive、onAdvance 和 forceTermination 的职责与边界。449 收藏 -
Java 虚拟线程解决的是大量任务在阻塞等待时的并发容量,不会增加 CPU 核心,也不会让单个计算更快。本文用载体线程、调度器和执行器示例说明 CPU 密集任务的正确拆分方式。448 收藏 -
用 TreeMap 工厂和自定义 Comparator 控制 Java Stream groupingBy 的分组键顺序,并说明时间比较器相等导致键合并的边界。448 收藏 -
围绕 Java 21 pattern switch 和 sealed 类型,说明 permitted 分支覆盖、when 守卫、无守卫兜底、支配关系与 null 边界的实现方法。448 收藏 -
用同一段 Java 线程实验复现 ReentrantReadWriteLock 非公平与公平策略下的写锁等待,解释读者持续到达时的排队边界,并给出可复查的选择方法。447 收藏 -
Java MethodHandle.asType 会返回一个拥有新签名的适配句柄。本文用一个静态方法调用实验拆开参数转换、返回值转换、invokeExact 校验和 WrongMethodTypeException 的边界。446 收藏 -
Spring Retry 只能控制临时异常的再次调用,不能单独保证消息幂等。本文用稳定 messageId、inbox 唯一约束、事务边界和外部接口幂等键,说明如何避免异常重试造成重复处理。445 收藏 -
Java HashMap 的桶并不是碰撞一多就立刻变成红黑树。本文结合 TREEIFY_THRESHOLD、MIN_TREEIFY_CAPACITY、resize 和 putVal 说明树化条件、扩容优先级与读取路径。443 收藏 -
LocalDateTime 不包含时区,不能单独确定时间戳。本文用 ZoneId、ZonedDateTime 和 Instant 演示秒级、毫秒级转换,并说明夏令时、固定偏移和精度损失。443 收藏