java教程技术文章
-
按配置源、前缀键名、Bean 注册、类型转换和校验五层排查 Java Spring 配置绑定失败,附 @ConfigurationProperties、构造器绑定与嵌套校验示例。473 收藏 -
用 Java Normalizer 构建 NFC 名称比较键,区分组合字符、原始展示值和规范键,说明本地运行判断、数据集成与兼容折叠边界。473 收藏 -
Java 月度账期不要手写二月天数。使用 YearMonth 表达年月,再调用 atEndOfMonth() 得到月末 LocalDate;需要展示或复核时,用 lengthOfMonth() 和 isLeapYear() 处理闰年差异。472 收藏 -
Java G1 混合回收暂停不能只看一行总耗时。本文从 Unified Logging 的事件行入手,结合 gc+phases、gc+ergo+cset 和 gc+heap 日志,定位集合选择、根扫描、对象复制与收尾阶段的长暂停来源。470 收藏 -
CompletableFuture.delayedExecutor 负责延迟触发,不是业务任务本身的线程池。本文用 Java 12+ 示例拆开触发器、基础 Executor、取消和异常边界,说明怎样安排可控的延迟任务。465 收藏 -
Java ClassValue 适合替代按 Class 做全局强引用缓存,但它不是类加载器泄漏的万能修复。本文从引用路径、computeValue、remove 和卸载检查四个角度说明正确用法与边界。464 收藏 -
Java ByteBuffer.slice 创建的是共享内容视图:新缓冲区从源 position 开始,拥有独立的 position、limit 和 mark,但对共享字节的修改仍会彼此可见。本文用结构示例区分 slice、duplicate、只读视图和显式复制。464 收藏 -
Java 命名模块中 ServiceLoader 读不到实现,通常不是接口代码有问题,而是消费模块缺少 uses、实现模块缺少 provides with、提供者不满足 public 构造约束,或实现模块未进入 module path 与解析图。本文用三模块最小示例给出完整排查方法。462 收藏 -
Java 25 的紧凑源文件可以省略显式 class 声明,配合实例 main 直接运行单文件程序。本文说明最小写法、java 启动命令、参数选择规则和何时恢复普通类结构。461 收藏 -
Java 25 的 StructuredTaskScope 仍是 preview API。本文用一个小型后端实验说明作用域取消如何中断未完成子任务,区分失败、超时、join 与 close 的结果,并给出正确响应 InterruptedException 的代码边界。460 收藏 -
文章 · java教程 | 3星期前 | Java · 并发编程 · 虚拟线程 · Java虚拟线程 ForkJoinPool Virtual Threads 调度器并行度 jdk.virtualThreadScheduler.parallelism
Java 虚拟线程调度器可通过 jdk.virtualThreadScheduler.parallelism 单独设置承载平台线程数。本文说明启动参数、验证示例、与 commonPool 及 maxPoolSize 的区别,并给出调优判断方法。459 收藏 -
Java 25 的 ScopedValue 适合替代只读 ThreadLocal 上下文:用有界动态作用域传递不可变请求信息,并明确嵌套绑定、线程继承和迁移边界。457 收藏 -
Java JFR 自定义事件的关键不是把日志换一种格式,而是把事件类型、业务字段、持续时间和 Recording 采集边界放进同一套 JVM 诊断模型。本文从一个慢操作诊断场景出发,讲清 Event 定义、shouldCommit、begin/end、commit 与 Recording 的职责。456 收藏 -
文章 · java教程 | 2星期前 | Java · 异常处理 · try-with-resources IOException Java InputStream.transferTo Java 字节流复制 OutputStream
用 Java InputStream.transferTo 把输入流复制到 OutputStream,理解返回字节数、流关闭责任、IOException 与部分写入边界,并给出文件、响应流和进程流的处理方式。455 收藏 -
用 HttpRequest.Builder.timeout 为单个 Java HttpClient 请求设置独立时限,区分 connectTimeout、请求超时、HTTP 状态码与同步异步异常处理。454 收藏