任何数据结构的构造或初始化,都应指定大小,避免数据结构无限增长吃光内存【示例】

正确示例:指定初始容量

java 复制代码
// ArrayList - 指定初始大小
List<String> list = new ArrayList<>(1000); // 预计存储1000个元素

// HashMap - 指定初始容量和负载因子
Map<String, User> map = new HashMap<>(500, 0.75f); // 初始500,负载因子0.75

// StringBuilder - 指定初始缓冲区大小
StringBuilder sb = new StringBuilder(1024); // 预分配1KB空间

错误示例:未指定大小

java 复制代码
List<String> list = new ArrayList<>(); // 默认容量10,频繁扩容
Map<String, User> map = new HashMap<>(); // 默认16,可能快速扩容
StringBuilder sb = new StringBuilder(); // 默认16,频繁扩容复制

后果: 未指定大小时,数据结构会频繁自动扩容(2倍增长),产生大量内存复制和碎片,严重时耗尽内存。

相关推荐
PPPHUANG17 小时前
一次 CompletableFuture 误用,如何耗尽 IO 线程池并拖垮整个系统
java·后端·代码规范
恩创软件开发17 小时前
创业日常2026-1-8
java·经验分享·微信小程序·小程序
一起努力啊~17 小时前
算法刷题--长度最小的子数组
开发语言·数据结构·算法·leetcode
小北方城市网17 小时前
第1课:架构设计核心认知|从0建立架构思维(架构系列入门课)
大数据·网络·数据结构·python·架构·数据库架构
想用offer打牌17 小时前
一站式了解Spring AI Alibaba的流式输出
java·人工智能·后端
Lonely丶墨轩17 小时前
从登录入口窥见架构:一个企业级双Token认证系统的深度拆解
java·数据库·sql
好易学·数据结构18 小时前
可视化图解算法77:零钱兑换(兑换零钱)
数据结构·算法·leetcode·动态规划·力扣·牛客网
独自破碎E18 小时前
【归并】单链表的排序
数据结构·链表
L_090718 小时前
【C++】高阶数据结构 -- 平衡二叉树(AVLTree)
数据结构·c++
冰冰菜的扣jio18 小时前
Redis基础数据结构
数据结构·数据库·redis