java教程技术文章
-
Java 虚拟线程可以承载大量并发任务,但外部服务仍有容量上限。本文用 Semaphore 只限制下游调用区,并说明中断、等待超时、finally 释放以及连接池重复限流的边界。468 收藏 -
用 Java HttpClient.sendAsync 发起异步请求,结合 BodyHandler 和 CompletableFuture 读取响应正文,并区分 HTTP 状态、网络异常与回调异常。468 收藏 -
CompletableFuture.delayedExecutor 负责延迟触发,不是业务任务本身的线程池。本文用 Java 12+ 示例拆开触发器、基础 Executor、取消和异常边界,说明怎样安排可控的延迟任务。465 收藏 -
文章 · java教程 | 2个月前 | Java · 正则表达式 · 性能 · Stream · predicate Java教程 Java Pattern.asMatchPredicate Java正则 Stream过滤
Pattern.asMatchPredicate 能把已编译正则直接变成 Predicate,适合复用在 Stream.filter 和输入校验中。本文拆开 matches 的完整匹配语义、find 的差异与重复编译成本。464 收藏 -
Java ClassValue 适合替代按 Class 做全局强引用缓存,但它不是类加载器泄漏的万能修复。本文从引用路径、computeValue、remove 和卸载检查四个角度说明正确用法与边界。464 收藏 -
Java ByteBuffer.slice 创建的是共享内容视图:新缓冲区从源 position 开始,拥有独立的 position、limit 和 mark,但对共享字节的修改仍会彼此可见。本文用结构示例区分 slice、duplicate、只读视图和显式复制。464 收藏 -
通过addAttribute为局部文本添加属性,解释左闭右开范围、属性迭代读取、UTF-16下标与码点换算,并提供完整Java示例。464 收藏 -
解释Java ZIP条目写入与文件系统关闭的不同边界,用try-with-resources安排成功通知,并区分归档更新完成与介质持久化保证。464 收藏 -
BigDecimal 去除尾随零后,toString 可能按规范使用科学计数法。本文说明 stripTrailingZeros、scale、toPlainString 和 setScale 的边界,帮助 Java 开发者稳定输出可读十进制文本。463 收藏 -
用一个可运行的小例子拆开 Java Map.computeIfAbsent 的 null 语义、递归更新限制和 ConcurrentHashMap 并发边界,避免把缓存未命中误判成已写入。462 收藏 -
Java Stream.toList() 与 Collectors.toList() 都能把流收集成 List,但返回列表的可变性、null 边界和类型推断并不相同。本文用可运行示例说明如何按后续操作选择写法。462 收藏 -
Java 命名模块中 ServiceLoader 读不到实现,通常不是接口代码有问题,而是消费模块缺少 uses、实现模块缺少 provides with、提供者不满足 public 构造约束,或实现模块未进入 module path 与解析图。本文用三模块最小示例给出完整排查方法。462 收藏 -
Java 25 的紧凑源文件可以省略显式 class 声明,配合实例 main 直接运行单文件程序。本文说明最小写法、java 启动命令、参数选择规则和何时恢复普通类结构。461 收藏 -
TCP和UDP都能完成两台计算机之间的数据通信,而且通信双方同样都需要创建Socket对象。不过,二者在通信方式上有一个很关键的区别。UDP只有发送端和接收端之分,并不强调客户端或服务器端的角色,设备之间可以比较自由地互相发送数据;TCP则不同,它对客户端和服务器端有明确区分,通信建立时,必须先由客460 收藏 -
Java 25 的 StructuredTaskScope 仍是 preview API。本文用一个小型后端实验说明作用域取消如何中断未完成子任务,区分失败、超时、join 与 close 的结果,并给出正确响应 InterruptedException 的代码边界。460 收藏