Go语言技术文章
-
Python sqlite3 的动态查询不要把用户输入直接拼进 SQL。本文从 qmark、named 两种占位符讲起,说明动态 IN 条件如何按参数数量生成占位符,以及表名、列名和排序方向为什么需要白名单。372 收藏 -
Decimal 直接接收 float 时会精确保留二进制浮点值,因此 Decimal(0.1) 可能出现长小数。本文说明怎样用字符串或整数构造,并用 FloatOperation 和 quantize 管住输入与输出边界。369 收藏 -
用 Python tempfile.NamedTemporaryFile 创建带可见路径的临时文件,说明 delete、delete_on_close、with 清理和 Windows 重新打开的边界。407 收藏 -
asyncio.Event 是可复用的状态标志,不是一次性消息队列。本文说明 set、wait、clear 的广播关系,并对比 Queue 与 Condition,帮助你避免清除时机不当造成的等待遗漏。116 收藏 -
TaskGroup 首个非取消异常会取消尚未完成的同组任务,并在退出时组合已产生的异常。本文用 except* 分类 ExceptionGroup,并演示如何把普通业务异常转成结果对象,从而汇总每个异步任务的失败状态。486 收藏 -
Java Map.computeIfAbsent 的映射函数返回 null 时不会记录键值映射。本文按触发条件、返回结果、异常边界和缓存策略拆开说明,帮助你区分未命中、空值与计算失败。117 收藏 -
使用 Jackson JsonNode 处理 JSON 更新请求时,字段缺失与显式 null 不是同一种状态。本文用 has、get、path、isNull 和 isMissingNode 给出清晰的判断方式,并说明 PATCH 更新时如何选择策略。475 收藏 -
BigDecimal 无参 divide 遇到 1/3 等非终止小数会抛出 ArithmeticException。本文按金额、比例和精确校验三类场景,说明 scale、RoundingMode 与 MathContext 的选择边界。163 收藏 -
Java Matcher 判断可选分组时,要在成功匹配后区分 null、空字符串和非空内容。用备注行解析器说明命名捕获组、位置判断、状态误用和业务集成。140 收藏 -
文章 · java教程 | 3星期前 | 文件处理 · Java · Stream · try-with-resources 文件遍历 Files.find Java Files.walk Stream
Java Files.walk 返回的 Stream可能持有打开目录,filter 只负责筛选元素并不会关闭资源。本文用 try-with-resources 处理正常结束、提前终止和异常路径,并说明 maxDepth、符号链接、UncheckedIOException 与 Files.find 的选择边界。 210 收藏 -
用同一个 Java HttpClient 实例承载连接复用,用 HttpRequest 描述单次调用,再根据文本或二进制场景选择 BodyHandler 读取响应体,并处理状态码、异步调用和关闭时机。349 收藏 -
Java CompletableFuture 的超时处理要先选对语义:用 orTimeout 保留超时异常,再用 exceptionally 做回退;如果超时本身就是可接受结果,则用 completeOnTimeout 直接返回默认值。396 收藏 -
Java flatMap 可以自然展开空集合,但 null 子集合和 null 元素需要不同策略。通过标签汇总示例说明空流、参数拒绝、职责边界与接入清单。266 收藏 -
Files.readString(path) 默认按 UTF-8 解码;文件实际编码不是 UTF-8 时,应使用带 Charset 参数的重载。本文从乱码根因、显式字符集写法和大文件边界三个方面给出可落地的选择方法。377 收藏 -
Java ByteBuffer.slice 创建的是共享内容视图:新缓冲区从源 position 开始,拥有独立的 position、limit 和 mark,但对共享字节的修改仍会彼此可见。本文用结构示例区分 slice、duplicate、只读视图和显式复制。464 收藏