为了账号安全,请及时绑定邮箱和手机立即绑定

私有最终静态属性与私有最终属性

私有最终静态属性与私有最终属性

慕侠2389804 2019-10-04 15:06:35
在Java中,两者之间有什么区别?private final static int NUMBER = 10;和private final int NUMBER = 10;都是private和final,不同之处在于static属性。有什么更好的?又为什么呢?
查看完整描述

3 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

对于final,可以在初始化时在运行时为其分配不同的值。例如


Class Test{

  public final int a;

}


Test t1  = new Test();

t1.a = 10;

Test t2  = new Test();

t2.a = 20; //fixed

因此,每个实例具有字段a的不同值。


对于static final,所有实例共享相同的值,并且在首次初始化后不能更改。


Class TestStatic{

      public static final int a;

}


TestStatic t1  = new TestStatic();

t1.a = 10;

TestStatic t2  = new TestStatic();

t1.a = 20;   // ERROR, CAN'T BE ALTERED AFTER THE FIRST INITIALIZATION.


查看完整回答
反对 回复 2019-10-04
?
RISEBY

TA贡献1856条经验 获得超5个赞

甲static变量保持在应用程序的整个生命周期的存储器,和类加载期间被初始化。static每次构造new对象时都会初始化一个非变量。通常最好使用:


private static final int NUMBER = 10;

为什么?这样可以减少每个实例的内存占用量。这对于缓存命中也可能是有利的。这很有意义:static应该用于在某种类型(aka class)的所有实例(aka对象)之间共享的事物。


查看完整回答
反对 回复 2019-10-04
  • 3 回答
  • 0 关注
  • 498 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信