我想知道Java中的内存分配是如何工作的。
我有一个名为Duck
的类,其中包含两个实例变量int size
和String name
。这些变量被初始化。如果我没有实例化这个类,那么这些变量的内存会在运行时分配到堆上吗?
谢谢, Gene
几种可能的情况:
如果您没有使用一个类,那么该类本身根本没有在类加载器中加载。
如果您正在使用一个类,但是没有实例化它,那么实例变量不会占用内存,因为没有实例可用。
如果您正在使用一个类,并且使用该类的对象作为实例,则每个实例的实例变量都会占用内存,无论您是否使用这些值。
如果你根本没有引用 Duck
类,那么这个类甚至不会被类加载器加载,所以答案是否定的。
Duck
类,并且从未在应用程序中引用过它,则不会被加载。 - Jan Zyka