Go语言技术文章
-
Python asyncio 中可以用 Semaphore 限制同时进入一次 IO 操作的任务数。本文从任务创建、信号量上下文、超时取消和并发粒度说明怎样控制请求排队,避免把并发上限误写成任务总数。335 收藏 -
Python 浮点数比较不要只写 a == b。本文用 math.isclose 拆解 rel_tol 与 abs_tol 的作用,说明不同数量级数据如何选择容差,并补充零、NaN 和无穷大的边界。278 收藏 -
Python 3.15 pathlib mkdir 新增 parent_mode,可指定新建中间目录的请求权限。本文通过临时目录示例区分末级 mode、中间层权限和 umask,并说明已有目录与旧版 Python 的边界。330 收藏 -
Python sqlite3 使用 file URI、mode=ro 和 uri=True 打开已经存在的 SQLite 文件,避免缺失文件被隐式创建,并区分连接失败与写入拒绝。159 收藏 -
Java 服务变慢时,使用 jcmd Thread.print -l 获取线程状态、锁信息和栈帧,按 BLOCKED、WAITING、TIMED_WAITING 与 RUNNABLE 分组,再结合锁拥有者和多次采样定位真正的阻塞。241 收藏 -
Java Files.find 可以在遍历文件树时直接接收 BasicFileAttributes 做过滤。本文用普通文件、大小和修改时间三个条件说明属性匹配写法,并用 try-with-resources 及时关闭返回流。345 收藏 -
Java Pattern 减少正则编译开销的关键是按规则生命周期复用编译对象。本文给出固定规则与配置规则写法,说明共享 Pattern、隔离 Matcher 及发布回退的注意事项。279 收藏 -
Java record 的字段是 final,但可变 List 仍可能通过共享引用被外部修改。本文用 compact constructor 和 List.copyOf 处理集合防御性复制,并说明它不等于深拷贝。494 收藏 -
Java MethodHandles.Lookup 的权限不是全局开关:本文用私有实例方法、publicLookup 和模块 opens 关系说明句柄创建时的访问检查,以及如何收窄和管理句柄能力。320 收藏 -
文章 · java教程 | 11小时前 | 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 收藏