关于静态变量 [重复]
Posted
技术标签:
【中文标题】关于静态变量 [重复]【英文标题】:Regarding Static Variable [duplicate] 【发布时间】:2014-01-25 06:43:56 【问题描述】:int a;
static int a;
两者占用相同的内存
我今天刚来,我不知道这样做有什么用::
private static final float INDICATOR_RADIUS = 1.0f;
这是一样的
private final float INDICATOR_RADIUS = 1.0f;
我不明白他们(http://developer.samsung.com/android/samples/Golf)为什么这样做?他们用了很多次
【问题讨论】:
【参考方案1】:int a;
static int a;
两者占用相同的内存
不,他们没有。第一个占用类的四个字节每个实例。第二个占用四个字节,不管是 0 个实例还是 100 个实例。该字段与类型相关,与该类型的任何特定实例无关。
【讨论】:
+1 用于指出内存消耗之间的差异。【参考方案2】:仅仅是因为他们希望static
变量在所有对象中都有一个实例。
【讨论】:
【参考方案3】:您应该从 JAVA 的基础开始。
静态变量是与一个类相关联的变量,而不是该类的对象。静态变量可以通过调用类名来访问:ClassName.VariableName。
【讨论】:
【参考方案4】:non-static 字段对于每个实例都是唯一的,它被称为 instance 字段。但是,static 字段是 Class 字段,由类的所有实例共享。 无论是声明为静态还是非静态,这两个字段的内存都是相同的
【讨论】:
【参考方案5】:一个简单的答案是static
变量在整个类中只有一个值。
详细地说,静态变量为每个对象保持相同的值。并且静态变量与java类相关联,不像局部变量与类的每个对象相关联
更多详情,请关注Java tutorial
【讨论】:
我不喜欢“针对所有实例”的描述,因为这表明必须有 one 实例...更多的是变量没有关联与任何特定实例。以上是关于关于静态变量 [重复]的主要内容,如果未能解决你的问题,请参考以下文章