请问语句a=a*b和a*=b哪个运算速度快?另外a=a+1,a+=1,还有a++这三个哪个速度更快呢?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/03 08:15:55
请问语句a=a*b和a*=b哪个运算速度快?另外a=a+1,a+=1,还有a++这三个哪个速度更快呢?

请问语句a=a*b和a*=b哪个运算速度快?另外a=a+1,a+=1,还有a++这三个哪个速度更快呢?
请问语句a=a*b和a*=b哪个运算速度快?
另外a=a+1,a+=1,还有a++这三个哪个速度更快呢?

请问语句a=a*b和a*=b哪个运算速度快?另外a=a+1,a+=1,还有a++这三个哪个速度更快呢?

如果你对java虚拟机,底层原理没有太深的研究,那么可以通过一些技巧来判断.给你个例子

public class $ {

    public static void main(String... _) {

        long size = 10000000000L;
        long num = 0;

        test1(num, size);
        test2(num, size);
        test3(num, size);
    }

    private static void test1(long num, long size) {

        long start = System.currentTimeMillis();
        for (long i = 0; i < size; i++) {
            num = num + 1;
        }

        System.out.println("a=a+1用时:" + (System.currentTimeMillis() - start));
    }

    private static void test2(long num, long size) {

        long start = System.currentTimeMillis();
        for (long i = 0; i < size; i++) {
            num += 1;
        }

        System.out.println("a+=1用时:" + (System.currentTimeMillis() - start));
    }

    private static void test3(long num, long size) {

        long start = System.currentTimeMillis();
        for (long i = 0; i < size; i++) {
            num++;
        }

        System.out.println("a++用时:" + (System.currentTimeMillis() - start));
    }
}

结果

a=a+1用时:4551
a+=1用时:4535
a++用时:4512