程宇寒 2018-11-08 08:15 采纳率: 100%
浏览 685
已采纳

java中x=x+1,x+=1,x++的效率问题

java中x=x+1,x+=1,x++的效率问题,这个问题之前我一直没想过,今天突发奇想!说实话,我还真没想过,这几天,杂七杂八的事情太多了,先记录下来,回头再来想这个问题!当然啦,有知道的小伙伴,也可以回答一下,帮我解下惑,不吝赐教!

  • 写回答

3条回答 默认 最新

  • Lxinccode 2018-11-08 08:36
    关注
     public class Test {
    
        public static void main(String[] args) {
            for (int i = 0; i < 20; i++) {
                test1();
            }
    
        }
    
        public static void test1() {
            int x = 0;
            long t = System.currentTimeMillis();
            for (int i = 0; i < 1000000000; i++) {
                x = x + 1;
            }
            int y = 0;
            long t2 = System.currentTimeMillis();
            System.err.println("x = x + 1 执行1000万次用时 : " + (t2 - t) + " 毫秒");
            for (int i = 0; i < 1000000000; i++) {
                y += 1;
            }
            int z = 0;
            long t3 = System.currentTimeMillis();
            System.err.println("y += 1 执行1000万次用时 : " + (t3 - t2) + " 毫秒");
            for (int i = 0; i < 1000000000; i++) {
                z++;
            }
            long t4 = System.currentTimeMillis();
            System.err.println("z++ 执行1000万次用时 : " + (t4 - t3) + " 毫秒");
            System.err.println("x:" + x + " y:" + y + " z:" + z);
            System.err.println("--------------------------------------------");
        }
    
    }
    
    

    输出

     x = x + 1 执行1000万次用时 : 5 毫秒
    y += 1 执行1000万次用时 : 5 毫秒
    z++ 执行1000万次用时 : 3 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 37 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 1 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 1 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 1 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 1 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 1 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 1 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    x = x + 1 执行1000万次用时 : 0 毫秒
    y += 1 执行1000万次用时 : 0 毫秒
    z++ 执行1000万次用时 : 0 毫秒
    x:1000000000 y:1000000000 z:1000000000
    --------------------------------------------
    

    几乎没有区别...

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致
  • ¥15 禅道二次开发编辑版本,上传不了发行包