对象引用 - 需要更多空间的内容



所以我和一个熟人打赌。这是关于使用 Java 开发时需要更多空间的内容。

ArrayList<Player>

在使用Bukkit(Minecraft)API编码时,玩家包括位置,物品栏,健康条,食物等级,经验等级等等。不过,字符串只是字符的编译。这就是为什么我认为

ArrayList<String>

如果您只需要玩家的名字,那将比带有玩家的 ArrayList 更令人愉快。

我的熟人告诉我关于对象引用的信息,这意味着这将是完全相同的事情,因为我通过

player.getName();

由于"对象引用"的东西,不会占用更多的空间或处理能力。

哪个论点是正确的?

假设您在内存中的其他地方已经Player实例,并且您要将这些现有对象添加到此列表中,那么它就会发生同一件事:两者都将是对象引用列表(对String或对Player)。对象引用很小(有关详细信息,请参阅此答案,但我们谈论的是 32 或 64 位)。这里的关键是,如果您已经Player实例,那么添加对它们的第二个引用会很便宜;它不会创建对象的副本,只是引用的副本,这很小。

当然,如果您还没有Player实例,并且只是为此列表创建它们,并且这些实例将包括名称和其他信息,那么当然会占用更多内存。

相关内容

最新更新