Go语言技术文章
-
更新配置、缓存或导出文件时,不要直接以 w 模式覆盖正式文件。本文用 pathlib.Path 和 tempfile 在目标目录先写临时文件,完成关闭后再 replace,说明失败清理、跨文件系统、Windows 句柄与持久化边界。268 收藏 -
Python 3.15 延迟导入的启动收益需要按入口测量。本文比较普通导入、函数内导入与显式 lazy import,提供新进程测量示例,并说明首次使用成本、异常时机和版本兼容取舍。133 收藏 -
Python 3.15 的 profiling.sampling 同时支持 wall-clock 和 cpu 采样。本文从观测目标、命令组合和生产排障场景说明两种模式的取舍,并提醒统计采样、短脚本和版本匹配的边界。138 收藏 -
Java 线程池队列一直变长,通常不是把容量调得更大就能解决。本文用有界队列、最大线程数和 CallerRunsPolicy 组成简单背压,并说明拒绝策略、指标与任务类型的取舍。311 收藏 -
Java GC 日志不能只看最大耗时。本文以 JDK 25 HotSpot/G1 为例,说明统一日志采集、GC 编号关联、暂停与并发阶段区分,以及安全点、CPU 时间和分配压力的判读边界。306 收藏 -
用 ValueSource、CsvSource 和 MethodSource 组织 JUnit 5 参数化测试输入,覆盖单值、表格与动态对象场景。110 收藏 -
Java record 和 Lombok @Data 都能减少数据类样板代码,但它们表达的对象契约不同。本文从不可变语义、访问器、继承、框架绑定和迁移成本比较两种方案,并给出 DTO、配置对象与领域实体的选择规则。422 收藏 -
Gradle configuration cache 不复用时,先用 help 区分配置阶段和任务阶段,再根据问题报告修复 Project、监听器、外部进程和任务状态依赖;暂时无法迁移的任务只做局部 opt-out。281 收藏 -
Jackson 多态 JSON 需要稳定类型字段和明确子类型映射。本文用通知对象的往返示例说明 Id.NAME 的用法,区分缺失类型、未知类型、集合泛型和旧数据迁移边界。126 收藏 -
Java Maven BOM 可以把一组相关依赖的版本集中到一个 POM,再由项目通过 dependencyManagement 和 import 引入。本文用原创示例说明 BOM 的写法、子模块声明、effective POM 排查,以及多个 BOM 重叠时的显式覆盖边界。279 收藏 -
文章 · java教程 | 1天前 | Java · 异常处理 · try-with-resources IOException Java InputStream.transferTo Java 字节流复制 OutputStream
用 Java InputStream.transferTo 把输入流复制到 OutputStream,理解返回字节数、流关闭责任、IOException 与部分写入边界,并给出文件、响应流和进程流的处理方式。455 收藏 -
BigDecimal 的 equals 同时比较数值和 scale,所以 1.0 与 1.00 可能被判定为不同对象;compareTo 只比较数值。本文用金额判断、集合键和输入构造说明两者的边界。499 收藏 -
Java Files.walk 返回的是惰性 Stream,它可能持有目录遍历资源,不能像普通集合一样长期放着不管。本文说明如何用 try-with-resources 包住完整消费范围,区分空结果、遍历异常和关闭边界,并整理一个可复用的安全封装。 180 收藏 -
虚拟线程适合承载大量阻塞 I/O,但连接池仍是有限资源。本文给出 Java 21+ 的执行器选择、连接借用代码、锁边界和排障方法。444 收藏 -
文章 · java教程 | 1天前 | 异步编程 · Java教程 · CompletableFuture · 进程管理 · java completablefuture process ProcessHandle onExit 异步进程
Java Process.onExit() 返回 CompletableFuture,可以把子进程结束接入异步链,而不必让当前线程一直阻塞在 waitFor。本文说明退出码、标准输出、错误输出、超时和 destroy 之间的职责边界。 233 收藏