Go语言技术文章
-
Java Pattern 减少正则编译开销的关键是按规则生命周期复用编译对象。本文给出固定规则与配置规则写法,说明共享 Pattern、隔离 Matcher 及发布回退的注意事项。279 收藏 -
Java record 的字段是 final,但可变 List 仍可能通过共享引用被外部修改。本文用 compact constructor 和 List.copyOf 处理集合防御性复制,并说明它不等于深拷贝。494 收藏 -
Java MethodHandles.Lookup 的权限不是全局开关:本文用私有实例方法、publicLookup 和模块 opens 关系说明句柄创建时的访问检查,以及如何收窄和管理句柄能力。320 收藏 -
文章 · java教程 | 6天前 | Java · 集合 · 资源管理 · Stream · Java教程 · supplier Java Stream Files.lines Stream生命周期 重复遍历
Java Stream 不是可反复读取的集合视图:一次终止操作后,继续使用同一个 Stream 可能抛出 IllegalStateException。本文从昂贵数据源的生命周期出发,说明何时保存集合、何时保存 Supplier>,并给出 Files.lines 的资源关闭写法。 146 收藏 -
用 Java ClassValue 按 Class 延迟缓存元数据,理解 get、computeValue、remove 的生命周期、失效方式与并发边界。165 收藏 -
Java Files.probeContentType 返回 null 并不等于文件损坏,而是当前文件类型探测器无法确定 MIME 类型。本文区分 null 与 IOException,解释扩展名、平台和 FileTypeDetector 的影响,并给出上传场景的受控兜底策略。218 收藏 -
Java 使用虚拟线程后,可以通过 jcmd Thread.dump_to_file 导出包含虚拟线程的文本或 JSON 线程转储。本文从目标 JVM、格式选择、输出边界和诊断材料整理四个方面说明用法,并提醒它不是暂停 JVM 的一致快照。366 收藏 -
Java ArrayDeque 适合在队列两端进行插入、删除和查看。本文用首尾语义拆开 add、offer、poll、peek、push、pop 的选择,并说明空队列、null 元素和线程安全边界。312 收藏 -
虚拟线程支持 ThreadLocal,但继承策略不能靠默认值猜测。本文用 Thread.Builder 关闭不需要的 InheritableThreadLocal 继承,并用 Java 25 ScopedValue 管理只读上下文的生命周期。126 收藏 -
PHP 方括号访问字符串时按字节处理,中文等 UTF-8 文本不能直接当作单字节字符数组使用。本文区分字节偏移与字符偏移,给出 mb_strlen、mb_substr、mb_strpos 和字符级封装的安全写法。103 收藏 -
PHP OPcache 预加载不是普通缓存开关,而是服务启动阶段把函数和类放入持久内存。本文从影响面、启动时间线、加载方式和重启边界说明怎样判断它是否适合你的常驻 PHP 进程。452 收藏 -
PHP Composer 的依赖解析会把 PHP、扩展和 Composer API 当作平台包。本文用生产 PHP 版本不一致的场景,说明如何配置 config.platform、生成 composer.lock,并在部署前检查真实平台。271 收藏 -
PDO 事务异常应由独占事务所有者捕获 Throwable,检查活动状态后尝试回滚,并保留原异常传播。示例区分开始、提交和清理失败,说明隐式提交与连接中断时的限制。474 收藏 -
PHP PDO 批量写入时,可以复用一条预处理语句,再为每一行绑定不同参数。本文比较 bindValue、bindParam 和 execute 参数数组,说明参数类型、空值以及事务提交回滚的边界。476 收藏 -
PHP json_decode 默认可能把 JSON 大整数解码为浮点数,订单号、雪花 ID 等标识就可能失去精度。本文说明 JSON_BIGINT_AS_STRING 的使用边界,并组合 JSON_THROW_ON_ERROR 处理解析失败。264 收藏