翻转Java布尔值的最快方法是什么?

by *_*uy. -6 java boolean xor

哪种方式更快,资源更少:

boolean = !boolean
boolean ^= boolean
Run Code Online (Sandbox Code Playgroud)

编辑:这不是一个基于意见的问题.有一个正确的答案.

Ber*_*lby 6

我用以下代码测量.

public static void main(String[] args)
{

    boolean myVariable = true;
    long startTime = 0;
    long endTime = 0;
    long duration1 = 0;
    long duration2 = 0;


    for(int i=0; i<1000; i++) {
        startTime = System.nanoTime();
        myVariable = !myVariable;
        endTime = System.nanoTime();

        duration1 += (endTime - startTime);


        startTime = System.nanoTime();
        myVariable ^= myVariable;
        endTime = System.nanoTime();

        duration2 += (endTime - startTime);

    }

        System.out.println("The duration for the first operation is :" + (duration1/1000));
        System.out.println("The duration for second operation is :" + (duration2/1000));
}
Run Code Online (Sandbox Code Playgroud)

结果是(以纳秒为单位)

第一次操作的持续时间为:140

第二次操作的持续时间是:123

基于此分析,boolean ^ = boolean比boolean =!boolean更快.