使用Boolean.valueOf()方法vs(或Java 1.5 autoboxing)创建Boolean对象

Gee*_*eek 7 java performance

这是间更好的实践 Boolean.valueOf()Java 1.5 autoboxing创造Booleanbooleans,为什么?

Tom*_*icz 13

Autoboxing 由编译器boolean透明地翻译成Boolean.valueOf():

boolean b = true;
Boolean bb = b;
Run Code Online (Sandbox Code Playgroud)

被翻译成:

iconst_1
istore_1            //b = 1 (true)
iload_1             //b
invokestatic    #2; //Method java/lang/Boolean.valueOf:(Z)Ljava/lang/Boolean;
astore_2            //bb = Boolean.valueOf(b)
Run Code Online (Sandbox Code Playgroud)

使用您认为更有用和可读的任何一个.由于使用Boolean.valueOf()除了额外打字之外没有给你任何东西,你应该瞄准自动装箱.


从-当你想想相反的转换情况复杂Booleanboolean.这个时间Boolean.booleanValue()由编译器透明地调用,理论上可以导致NullPointerException.