除了@Bozho的要点之外,将字段声明为
final意味着可以安全地访问它而无需任何同步。
相反,如果该字段不是
final,则存在另一个风险,即如果另一个线程在没有适当同步的情况下访问该字段,则另一个线程将看到该字段的异常值。即使在对象构建后没有任何改变字段值的情况,也会发生这种情况!

除了@Bozho的要点之外,将字段声明为
final意味着可以安全地访问它而无需任何同步。
相反,如果该字段不是
final,则存在另一个风险,即如果另一个线程在没有适当同步的情况下访问该字段,则另一个线程将看到该字段的异常值。即使在对象构建后没有任何改变字段值的情况,也会发生这种情况!