在样式或性能方面,在循环内或外部定义变量是否更好?
例如:
int var; for (...) { var = /*something*/; // Code that uses var }
要么
for (...) { int var = /*something*/; // Code that uses var }
如果您对变量声明如何在内部工作有任何见解,以及其中一个声明如何比另一个更好(即使它只是略微),请分享.而在性能之外,哪种风格更受青睐?
解决方法
内
for(int i = 0; i < array.length; i++) { final String variable = array[i]; }
>保持变量范围有限.
>变量可以是最终的
>更具可读性(可能)
外
String variable; for(int i = 0; i < array.length; i++) { variable = array[i]; }
>变量可在循环外访问.
每个人
for(final String variable : array) { }
>仅分配一次(需要来源)
>保持变量范围有限.
>看起来很棒.
进行以下测试.运行大约需要30秒.结果表明,在循环内部或外部定义变量之间的性能没有差异.这很可能是由于编译器优化.因人而异.
final double MAX = 1e7; long start = System.nanoTime(); String var1; for(double i = 0; i < MAX; i++) { var1 = UUID.randomUUID().toString(); } System.out.println((System.nanoTime() - start) / 1e9); start = System.nanoTime(); for(double i = 0; i < MAX; i++) { final String var2 = UUID.randomUUID().toString(); } System.out.println((System.nanoTime() - start) / 1e9);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。