是否为Java中的未使用字段分配了内存?

Gen*_*ene 3 java memory

我想知道Java中的内存分配是如何工作的.

我有class Duck两个实例变量int size和String name.这些变量已初始化.如果我没有实例化这个类,那么这些变量的内存是否在运行时在堆上分配?

谢谢,基因

Gor*_*vic 7

几种可能的情况:

  • 如果您没有使用类,那么类本身根本不会加载到类加载器中.

  • 如果您正在使用类,但没有实例化它,那么实例变量不占用内存,因为没有实例可以开始.

  • 如果您正在使用类,并使用作为该类实例的对象,则实例变量会为每个实例使用内存,无论您是否使用这些值.


Jan*_*yka 6

如果你没有引用Duck所有类的类甚至没有通过类加载器加载,所以答案是否定的.