我是靠谱客的博主 碧蓝百合,最近开发中收集的这篇文章主要介绍Java位移操作真的比乘法快吗?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一直都有人说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位移操作真的比乘法快吗?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部