java技术教程之java简单程序优化问题分享能帮助大家了解到更多的java开发问题。北大青鸟武汉宏鹏鲁广校区的ACCP课程和学士后java课程能帮助大家了解到更多的信息。下面就从三个方面进行介绍。
常量折叠:
我们写程序常常会出现这样的现象:
Int a = 1*2+3+4;
其实这种形式直接完等价于int a = 9,但结果相同,效果却有很大的区别,前者计算机要执行 4次 后者计算机只需要执行2次。相比,在效率方面,后者更好一些,这就是所谓的常量折叠,但许多编译器已经在这方便帮我们做了,虽然我们的写法是前者,但编译器在后台已经默默的把他转变成了后者。所以这里我们只是稍微提起。
数学公式:
这种方式,我想大家大多说都见过。举个例子,求1000以内的所有整数和。
一般做法:
for(int a = 0 ; a < 1000; a++){
sum +=
a;
}
但这种做法很不高效,计算机在执行这条语句时会默默的在后台反复的执行累加过程。虽然这么做不会影响我们所要的结果,但在性能上却造成很多不必要的消耗。如果有只需执行几句,并能得到我们所要的结果,何乐而不为呢。以下做法可以达到此效果。
Int sum = (0+1000)*1000/2 ;
从结果上,此方法和上述的方法都可以得到相应的结果,可是后者在时间上却大大的减少了。从而提高了代码的效率。
活用运算符
我们常用的运算符 + ,-, * ,/ , % ,& ,|
等等,在这里我们只提一下四则运算。在计算机的世界里加减运算快的,大约一个时钟周期就可以计算完毕,而除法则运算是慢的,大约在50~60个时钟周期,而位运算大约在5~6个时钟周期。我想不用我继续说下去,你们已经猜到了。为了让计算机更高效的为我们工作。我们应尽量用加法,减法及位运算。这将会提高我们的代码质量。废话不多说了,举个例子:
在JAVA
JDK中,我们常常能看到<< >> 这两个符号,我相信各位都知道,这是左移右移运算符,也就是我们说的位运算的一种,为什么能常常看到它呢,原因很简单,一句话:位运算比乘除法快。
int max = 100000;
int temp = 3;
long start = 0 ;
long end = 0 ;
start = System.currentTimeMillis();
for (int i = 0; i < max; i++) {
for (int k = 0; k < max; k++) {
int x = 1000*13;
}
}
end =System.currentTimeMillis();
System.out.println("-------->"+(end - start));
start = System.currentTimeMillis();
for (int i = 0; i < max; i++) {
for (int k = 0; k < max; k++) {
int x = 1000<<3 + 1000<<2 +1000;
}
}
end =System.currentTimeMillis();
System.out.println("-------->"+(end - start));
结果:
-------->14586
-------->13527
java技术教程之java简单程序优化问题的深入理解让北大青鸟武汉宏鹏的学子进行详细了解,在理论学习和项目开发的时候运用得更加好。
本文标题:java技术教程之java简单程序优化问题,责任编辑:宏鹏,来源:武汉北大青鸟鲁广校区栏目,于2012-07-16 10:48:51发布于北大青鸟鲁广校区。java技术教程之java简单程序优化问题分享能帮助大家了解到更多的java开发问题。
预约将免费领取7天课程体验卡
只为您方便就学
专业老师24小时1对1学习指导
定制专属于你的专属学习方案
微信号:17740513250
微信号:17740513250