5 回答

TA贡献1842条经验 获得超12个赞
不过我实在是没有看明白,楼主想要表达什么。final
修饰符跟效率有关系?这个我不太清楚,从来没有考虑过这个问题呢。execute()
在你在电脑中i
一秒钟能增加到多少我不太清楚,不过看你的逻辑,cpu
是要爆炸的吧。
最后我们一般做性能测试,都是根据结果与消耗时间换算得来。要知道你这里启动一个线程中间还有sleep
唤醒线程,这都需要花时间,计算机运行速度是很快,即使是1
毫秒你这个测试结果差距也会很大。

TA贡献1943条经验 获得超7个赞

TA贡献1797条经验 获得超6个赞
final 确实会提高效率,但是原理我并不是很清楚,估计在百度上应该能搜出来。大概的原因有如下一些
final 变量在编译的时候可以被优化成常量或常数,从而提高性能(影响微小)
final 方法。相对于 C++ 来说,Java 方法默认是 virtual 的,所以会有方法链啊,动态绑定啊之类的事情要干,而 final 就是把方法申明为非 virtual 的,不再需要这些动态特性支持,从而提高性能
final 类是不可继承的类,大概也是能减少继承相关的一些处理吧
总的来说 final 能提高性能是对的,但是用 final 主要还是从静态检查的安全角度考虑,而不是从性能去考虑,除非实则项目中改成 final 之后性能有较高的提升。平时开发的时候对不需要改变的变量、类型添加 final 修饰还是个比较好的习惯,毕竟在需要的时候去掉 final 不会对以前的程序造成太大的影响,不过对方法加 final 就要慎重了。
添加回答
举报