【java performance】尽可能的使用栈变量
2014-02-21 17:03
246 查看
如果一个变量需要经常访问,那么你就需要考虑这个变量的作用域了。static? local?还是实例变量?访问静态变量和实例变量将会比访问局部变量多耗费2-3个时钟周期。
例子:
public class USV {
void getSum (int[] values) {
for (int i=0; i < value.length; i++) {
_sum += value[i]; //violation.
}
}
void getSum2 (int[] values) {
for (int i=0; i < value.length; i++) {
_staticSum += value[i];
}
}
private int _sum;
private static int _staticSum;
}
更正:
如果可能,请使用局部变量作为你经常访问的变量。
你可以按下面的方法来修改getSum()方法:
void getSum (int[] values) {
int sum = _sum; // temporarylocal variable.
for (int i=0; i < value.length; i++) {
sum += value[i];
}
_sum = sum;
}
参考资料:
Peter Haggar: "Practical Java -Programming Language Guide".
Addison Wesley, 2000, pp.122 – 125
例子:
public class USV {
void getSum (int[] values) {
for (int i=0; i < value.length; i++) {
_sum += value[i]; //violation.
}
}
void getSum2 (int[] values) {
for (int i=0; i < value.length; i++) {
_staticSum += value[i];
}
}
private int _sum;
private static int _staticSum;
}
更正:
如果可能,请使用局部变量作为你经常访问的变量。
你可以按下面的方法来修改getSum()方法:
void getSum (int[] values) {
int sum = _sum; // temporarylocal variable.
for (int i=0; i < value.length; i++) {
sum += value[i];
}
_sum = sum;
}
参考资料:
Peter Haggar: "Practical Java -Programming Language Guide".
Addison Wesley, 2000, pp.122 – 125
相关文章推荐
- Java代码优化--尽可能地使用stack(栈)变量(方法内部的局部变量)
- 【java performance】使用'System.arraycopy ()'代替通过来循环复制数组
- 【java performance】使用移位操作来代替'a / b'操作
- 删除一个单项链表的最中间的元素,要求时间尽可能短(不能使用两次循环)java
- 【java performance】使用移位操作代替'a * b'
- Java代码优化--尽可能地使用stack(栈)变量(方法内部的局部变量)
- Java代码优化--尽可能地使用stack(栈)变量(方法内部的局部变量)
- Java代码优化--尽可能地使用stack(栈)变量(方法内部的局部变量)
- 【java performance】避免在循环条件中使用复杂表达式
- Java Cookie 使用
- 如何使用tomcat建立简单的java web项目
- java keytool证书工具使用小结
- 使用java创建kafka的生产者和消费者
- java多线程学习之使用join()方法实现线程插队
- java实现TreeSet,迭代器使用二叉查找树,每个节点有父节点链
- Java学习笔记32:Spring整合mybatis使用
- 使用File类访问本地文件 java学习(二)
- java中使用jdbcTemplate的query方法举例与总结
- java使用socket实现文件传输时的接收判断
- java使用数组实现循环队列