gpt4 book ai didi

Java - Integer[] 和 int[] 内存差异

转载 作者:行者123 更新时间:2023-11-29 10:13:27 24 4
gpt4 key购买 nike

我试图大致了解整数数组和整数数组之间的内存成本差异。虽然似乎有很多关于原始 int 和 Integer 对象之间差异的信息,但对于如何计算 int[] 和 Integer[] 数组的内存成本(开销成本),我仍然有点困惑,填充等)。

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

除了存储数组的长度外,int 数组需要存储 N 个 4 字节元素的空间,而 Integer 数组需要存储 N 个 4 字节元素的空间N 个引用,其大小与平台相关;通常,在 32 位平台上为 4 个字节,在 64 位平台上为 8 个字节。

int[] 而言,不需要额外的内存来存储数据。另一方面,Integer[] 需要 Integer 类型的对象,这些对象可以是不同的或共享的(例如,通过 Java 平台本身实现的小数字的驻留) .因此,Integer[] 最多需要 N 个额外的对象,每个对象包含一个 4 字节的 int

假设 Integer[] 数组中的所有 Integer 都是不同的对象,则数组及其内容将占用 空间的两到三倍int[] 数组。另一方面,如果所有对象都是共享的,并且共享对象的内存成本被考虑在内,则可能根本没有额外的开销(在 32 位平台上),或者在 64 位平台上会有 2 倍的开销.

关于Java - Integer[] 和 int[] 内存差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25423792/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com