关于修饰语的记忆

时间:2014-09-26 18:54:05

标签: java

我在考虑Java中的这些修饰符之间是否有任何区别。例如:我有一个int值:     public int;     私人int;     public static int;     private static int;     public final int =?;     private static final int =?; 因为我在Minecraft中看到资源位置是私有静态最终的。它们之间的内存消耗有什么区别吗?

1 个答案:

答案 0 :(得分:2)

声明为static的所有属性都属于一个类,而不是非静态实例属性,这些属性是为每个实例化的对象分配的。所以是的,static属性最终消耗了#34;更少的内存"因为他们每个班级只创建一次'实例

但是认为你将一个属性声明为static只是为了消耗更少的内存是不对的,你创建一个因为你想在所有类的实例中共享相同的值,并且这通常不是设计糟糕的表现。一个例外是当一个属性被声明为static final时,这意味着它具有一个常量值,并且可以在类级别安全地声明。