最新内容

最近发布的文章

blog11
1 分钟阅读

小内存 Java 服务如何优雅处理大文件

在很多实际生产环境中,我们的 Java 服务并不是“豪华配置”: 如果处理不当,很容易: 本文将分享一套低内存、可扩展、生产可用的解决方案。 一、典型错误做法(千万别这样) ❌ 1. 一次性读入内存 ...

阅读全文
blog8
1 分钟阅读

IOPS、文件大小与文件数量的关系

——写 1 个大文件 vs 写多个小文件,差距到底有多大? 在做磁盘性能分析、日志设计、数据落盘或者存储选型时,经常会遇到这样的问题: 答案是:有差距,而且跟存储介质关系非常大。 这篇文章从 IOPS...

阅读全文
fengche min
1 分钟阅读

Java 中按 value 排序 Map 的几种常见方式

在日常 Java 开发中,经常会遇到这样一个需求:Map 需要按照 value 排序。 但 Java 标准库里的 Map 有一个特点: 👉 没有一种 Map 天然支持按 value 排序。 因此,按 ...

阅读全文
blog15
1 分钟阅读

Java Map.compute 方法能否删除元素?

在日常使用 Map 的时候,我们经常会遇到这样的需求: 那么问题来了:Map.compute 方法能不能用来删除元素? compute 方法的语义 Map.compute(key, remapping...

阅读全文
blog5
1 分钟阅读

Caffeine 缓存的时间过期触发机制详解

在使用 Caffeine 缓存时,经常会遇到一个问题:配置了基于时间的过期策略,为什么数据过期后还在内存里? 本文将深入解析 Caffeine 的时间老化触发原理,以及如何通过 Scheduler 实...

阅读全文
blog8
1 分钟阅读

Java线程安全的有界队列性能对比与最佳选择

在高并发编程中,线程安全队列是最常见的数据结构之一,广泛用于生产者-消费者模型。然而,常见的线程安全队列并不都是有界的,而在很多业务场景下,我们必须要限制队列容量(避免内存无限膨胀,造成 OOM)。本...

阅读全文
tianyuan min
2 分钟阅读

使用 Caffeine 实现前缀批量过期的几种方法

在日常业务中,缓存是提升系统性能的重要手段。Caffeine 作为 Java 中性能最好的本地缓存库之一,被广泛使用。但在实际使用过程中,我们经常会遇到一个需求: 如何让某个前缀下的所有 key 批量...

阅读全文
blog11
2 分钟阅读

Java 高性能序列化与持久化:使用 Kryo 的最佳实践

在 Java 中,使用 Map 存储内存数据并定时持久化到磁盘,是很多系统常见的需求,如缓存、配置中心、本地任务队列等。为了保证高性能和低延迟,选择一个高效的序列化框架至关重要。本文将介绍如何使用 K...

阅读全文