【问题标题】: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)为什么这样做?他们用了很多次

【问题讨论】:

    标签: java android static


    【解决方案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 实例...更多的是变量没有关联与任何特定实例。
          猜你喜欢
          • 2018-05-24
          • 1970-01-01
          • 2015-11-27
          • 1970-01-01
          • 2016-09-25
          • 2017-01-10
          • 2013-03-01
          • 2012-04-04
          • 1970-01-01
          相关资源
          最近更新 更多