java中布尔值赋值的有效方式是什么?

What is the efficient way of boolean value assignment in java?

我们可以通过三种方式分配boolean

    boolean isDone;
    isDone = true;
    isDone = Boolean.valueOf(true);
    isDone = Boolean.TRUE;

那么哪个赋值效率更高呢?

只有第一个不涉及任何装箱或拆箱。所以从表面上看,第一个是最有效的。但是,大多数编译器(或即时编译器,如果存在)可能会优化其他两个赋值以使其同样有效。

当然,如果将 isDone 声明为 Boolean 而不是 boolean,情况就会有所不同。在那种情况下,我更喜欢第三个作业。

很可能编译器和 jit 优化器会将它们全部优化为同一件事,但 "best" 理论上是第一个:isDone = true;,因为它不涉及 boxing and unboxing