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

What is the quickest way to flip a Java boolean?

哪种方式更快且占用资源更少:

boolean = !boolean
boolean ^= boolean

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

boolean = !boolean 可能更好,因为它更易于阅读。两者都不是资源密集型,因此使用其中任何一个都不会真正对性能产生真正的影响。

我是用下面的代码测的

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));
}

结果是(以纳秒为单位)

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

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

根据此分析,布尔值 ^= boolean 比 boolean = !boolean 更快。