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

正确示例:指定初始容量

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倍增长),产生大量内存复制和碎片,严重时耗尽内存。

相关推荐
SimonKing3 小时前
你的项目还在用MyBatis吗?或许这个框架更适合你:Easy-Query
java·后端·程序员
nice_lcj5203 小时前
认识多线程:单例模式
java·开发语言·单例模式
货拉拉技术3 小时前
从代码到配置:如何用SQL配置实现数据核对
java·后端
程序员小假3 小时前
设计模式了解吗,知道什么是饿汉式和懒汉式吗?
java·后端
拾忆,想起3 小时前
TCP粘包拆包全解析:数据流中的“藕断丝连”与“一刀两断”
java·网络·数据库·网络协议·tcp/ip·哈希算法
代码雕刻家3 小时前
1.7.课设实验-数据结构-二叉树-文件夹创建系统
c语言·数据结构
后端小张3 小时前
【JAVA 进阶】穿越之我在修仙世界学习 @Async 注解(深度解析)
java·开发语言·spring boot·后端·spring·注解·原理
ChMao3 小时前
java解析word中的excel
java
百锦再3 小时前
第6章 结构体与方法
android·java·c++·python·rust·go