请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

1回答

Jimin 2018-05-21 17:19:45

你好,学完后面的课程你可能会更清楚关于final的使用。你可以先看一下 http://www.importnew.com/7553.html 这里介绍的final关键字的好处:

1)final关键字提高了性能。JVM和Java应用都会缓存final变量。

2)final变量可以安全的在多线程环境下进行共享,而不需要额外的同步开销。

3)使用final关键字,JVM会对方法、变量及类进行优化。

因此,一个变量如果可以使用final修饰时,使用final修饰会有他特有的好处。

此外,还有一些场景,要求传入的变量必须是final修饰的才可以,比较常见的就是传入线程池的变量。这些在实际运行时需要保证变量“不可变”。

0 回复 有任何疑惑可以回复我~
  • 老师,你好,我在本地测试了一下,如果semaphore和countdownLatch不使用final修饰,就算cout用AtomicInteger来修饰,最终得到的结果也可能不是5000.
    回复 有任何疑惑可以回复我~ 2018-05-22 14:20:13
  • Jimin 回复 qq_腾飞_11 #2
    那基本上是代码哪里不对,比如countDow方法位置放错了,好几个同学都在这里犯过这种低级错误,对着视频把代码位置写错。final是不会影响这些结果的。
    回复 有任何疑惑可以回复我~ 2018-05-22 14:55:51
  • qq_腾飞_11 回复 Jimin #3
    是的,刚发表完评论就发现位置放错了。多谢提醒。
    回复 有任何疑惑可以回复我~ 2018-05-22 15:10:13
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信