大家下午好
我有一个看起来像这样的类:
public class Grapheme {
public Grapheme(int[] code_points) {
this.code_points = code_points;
}
int[] code_points;
}
从下面 bdonlan 提供的链接中,我了解到通常一个 Grapheme 对象需要 8 个字节的对象头,4 个字节的变量(其类型是reference)和 4 个字节的填充。code_points
因此,如果我使用代码创建 Grapheme 实例,则new Grapheme(null)
该 Grapheme 实例通常总共需要 16 个字节。由于它是否为 16 字节是特定于实现的,从这里开始,我将把这个数字称为x字节。
基本上我想知道我是否创建了n个 Graphemes,将它们传递null
给构造函数,并将这些 Graphemes 存储到长度为nGrapheme(int[])
的数组中,
运行时(存储 Grapheme 实例)所需的总内存是否严格 为 n * x字节?
或者 JVM 有没有机会尝试做一些神奇的优化,使得所需的内存低于n * x字节?