概述
一直都有人说Java的位移运算比乘法快,所以我也一直信了,今天突然想起来了,就想试一试,不试不知道,一试吓一跳,原来信了这么长时间的知识,是假的!如有错误请指正。
代码
public class Java {
public static void main(String[] args) {
//测试位移操作
long time=0;
for (int r=0;r<100;r++){
int i=1;
long startTime=System.currentTimeMillis();
for (long j=0L;j<5000000000L;j++){
int k = i << 3;
}
long endTime=System.currentTimeMillis();
time=endTime-startTime;
System.out.println(time);
//测试乘法操作
i=1;
startTime=System.currentTimeMillis();
for (long j=0L;j<5000000000L;j++){
int k = i * 8;
}
endTime=System.currentTimeMillis();
time=endTime-startTime;
System.out.println(time);
System.out.println();
}
}
}
结果
2143
1656
1646
1654
1645
1640
1643
1690
1640
1640
1650
1649
1645
1647
1639
1652
1641
1651
1645
1643
1640
1659
1636
1643
1641
1639
1644
1644
1646
1638
1640
1636
1650
1639
1640
1642
1638
1640
1635
1639
1637
1649
1640
1641
1683
1642
1660
1639
1638
1643
1642
1636
1655
1639
1651
1664
1640
1640
1640
1636
1651
1643
1639
1643
试了之后除了第一次时间有点差距,后边的时间都差不多,所以我感觉是jvm做了优化。经过这次之后,看来别人的各种优化代码的手段也不能全信,还是需要自己试一试的。
最后
以上就是碧蓝百合为你收集整理的Java位移操作真的比乘法快吗?的全部内容,希望文章能够帮你解决Java位移操作真的比乘法快吗?所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复