最终变量解释

Stu*_*ion 15 java performance final

我知道编译器如何解释Java中的final关键字,但是我们应该如何解释它的含义呢?应该是:

1)此变量无法更改(例如内部类使用)

要么

2)我不打算更改此变量(可能对成员变量有一些优化优势).

我问的是因为我已经处理了默认情况下所有内容都被声明为final的代码(上面的选项2),在我看来,这会使关键字贬值并隐藏真正无法改变的值!声明变量最终还有性能优势吗?

Jon*_*eet 17

一切最终被默认是一个很好的事情.您可以越多地模拟代码的不变性,它就越容易被推理.

final在我看来,使用几乎不是表现.它是关于对其余代码进行断言(没有改变这个变量),它可以帮助读者理解代码,并且可以由编译器检查.

编辑:以上是我对字段的看法.对于局部变量(包括参数),我个人仅final在变量将用于匿名内部类时使用.这与字段不同,因为:

  • 很容易看出方法的整个背景 - 如果不是,那本身就是一个问题.
  • 因为它不代表对象(或类)的状态,所以不可变性的好处并不真正适用.


Ing*_*ngo 6

最后的关键字应该被抛弃,它应该在所有适用的情况下,标准,以及终结应该只是revokable与关键字一样

this_variable_will_change_unexpectedly_behind_your_back
Run Code Online (Sandbox Code Playgroud)

此关键字不应由任何IDE自动完成,并且无法使用Ctrl-V插入它.

  • 完全基于意见,但我碰巧分享它的每一个字:) (4认同)
  • 而"变量"的笑话已经意味着"它可以在你背后改变"......如果数学家在一个表达式中改变了它,那么数学家会怎么说? (3认同)