最终变量和静态变量之间的差异,参考它们在内部类中的使用

时间:2010-09-24 08:18:00

标签: java static final

这是关于内部类中的最终变量,但是如果我们将变量声明为方法的静态外,则假设该方法是静态的,而不是将变量声明为final。那么在内部类中声明为静态外部方法或最终内部方法之间的区别是什么。他们会有什么不同或他们的功能相似。哪一个是最好用的。我将等待回复。

先谢谢

2 个答案:

答案 0 :(得分:3)

静态变量将在内部类的不同实例中保持其值。假设您在内部类A中声明一个静态变量并为其赋值1,然后在方法调用中将其值增加为2.当创建此内部类的另一个实例时,它将具有A的值为2。

如果是最终变量,您只能在声明时指定一次值(在您的情况下,即在方法内声明)。由此产生的编译器的作用是它内联值,即,无论何处此变量,变量都被其值替换(因为您无法更改其值)。

我建议尽可能使用final变量。但静态有其需求,使用取决于使用场景。

答案 1 :(得分:2)

最终变量是实例变量,其值在初始化后无法更改(在c'tor中或在声明时)。 但静态变量属于一个类。这将在所有实例中共享。因此,当您更改实例中静态变量的值时,它会反映在所有实例中。