我想知道Java中的内存分配是如何工作的。
我有class Duck
个实例变量int size
和String name
。这些变量已初始化。如果我没有实例化这个类,那么这些变量的内存是否在运行时在堆上分配?
谢谢, 基因
答案 0 :(得分:7)
几种可能的情况:
如果你没有上课,那么 类本身没有加载到 完全是类加载器。
如果您正在使用课程,但不是 实例化它,然后实例 变量没有占用内存,因为没有实例可以开始。
如果您正在使用课程,并且正在使用 作为其实例的对象 class,然后是实例变量 为每个实例使用内存, 无论你是否使用这些 价值与否。
答案 1 :(得分:6)
如果您没有引用类Duck
,那么甚至没有通过类加载器加载类,所以答案是否定的。