对象参考 - 什么需要更多空间?

时间:2015-01-06 10:02:22

标签: java object reference

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

ArrayList<Player>

在使用Bukkit(Minecraft)API编码时,玩家包括位置,库存,健康栏,食物级别,xplevel等等。但是,字符串只是字符的汇编。 这就是我认为

的原因
ArrayList<String>
如果你只需要玩家的名字,

比玩家的ArrayList更令人愉快。

我的熟人告诉我有关对象的引用,并且意味着它完全相同,因为我通过这样做获得了玩家的名字

player.getName();

因为&#34;对象引用&#34;东西,没有更多的空间或处理能力。

哪个论文属实?

1 个答案:

答案 0 :(得分:1)

假设你的内存已经已经Player实例,你将把这些现有的对象添加到这个列表中,然后它来了同一件事:两者都是对象引用列表(StringPlayer)。对象引用很小(see this answer for details,但我们说的是32位或64位)。这里的关键是,如果您已经拥有Player个实例,那么添加第二个引用便宜;它不会创建对象的副本,只是引用的副本,它很小。

当然,如果你已经拥有Player个实例并且只为这个列表创建它们,那些实例将包含名称和其他信息,那么当然需要更多的记忆。