我真正想知道的是:我会在Java中创建一个名为“Family”的类,并且每个系列都会有一些“familyMembers”作为成员变量,是否会为每个系列声明更多内存“家庭成员”中他们所属的“家庭”是什么?换句话说,史密斯家有三个成员,爸爸,妈妈和小孩,如果让家庭“史密斯”成为每个家庭的成员变量,会不会花费更多的记忆:爸爸,妈妈和小孩?
答案 0 :(得分:2)
一切都需要花钱。如果添加另一个类变量,它将以两种方式成本。首先是在加载时在类中声明的一些字节,然后是每个引用另外4个字节。 这是因为您必须将类定义加载到内存(永久,permgen空间)中,并且因为每个引用在您的堆栈上是唯一的,每个引用4个字节。
答案 1 :(得分:1)
除非您使用new
关键字或基本类型,否则只使用存储引用所需的内存
答案 2 :(得分:0)
是的,对家庭的引用,当存储在家庭成员中时,会根据引用的大小增加家庭成员的实例大小。
请注意,实际上,由于Java VM使用各种内存管理技术,这并不一定意味着更多的内存消耗。