栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java位移操作真的比乘法快吗?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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做了优化。经过这次之后,看来别人的各种优化代码的手段也不能全信,还是需要自己试一试的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/826310.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号