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

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/14 19:20:16
请问语句a=a*b和a*=b哪个运算速度快?另外a=a+1,a+=1,还有a++这三个哪个速度更快呢?
xVnA~/ κtO_@p۬YH4!hkA(JU@PRc (/3Кt/Μ=;;fg|рYw2fS%sAfEoTvt,E*w$0YN]#s!?~iTL f[ I!õ0llH6>H#HQqBFe|;:NVșz#7w!KxHv4 FcAY ٔdiLɆ44d( ia()%J v1AqR(+i~6J,l'k$jHSL8wǔ9v\kL Q8DiakbYq_=` "KgkH 󡘪 'Ż,K}E]L)N:A&&#qoX+4q$,L'MO Y"[_I6XpkYRuMˣ6 W?R}Mˠ2W`]dI/{IlȞZ=#ϩEb]

请问语句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