繁体   English   中英

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

[英]Is memory allocated for unused fields in Java?

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

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

谢谢,基因

几种可能的情况:

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM