1. 程式人生 > >Boolean.valueOf(boolean) 與 Boolean.valueOf(String) 的區別

Boolean.valueOf(boolean) 與 Boolean.valueOf(String) 的區別

1. Boolean.valueOf(String)用法

  a. 當 String 的引數值在不區分大小寫的時候等於 "true" ,則 Boolean.valueOf(String) 返回值為 true;

  b. 否則返回值為 false ,引數為空時也返回 false 。.  

/**
* Boolean.valueOf(String)
*/
public class BooleanTest {
    public static void main(String[] args) {
       boolean a = Boolean.valueOf("true");
       boolean b = Boolean.valueOf("TRUE");
       boolean c = Boolean.valueOf("tRUE");
       boolean d = Boolean.valueOf("abc");
       boolean b = Boolean.valueOf("false");
       boolean e = Boolean.valueOf("");
       System.out.println(a);
       System.out.println(b);
       System.out.println(c);
       System.out.println(d);
       System.out.println(e);
       System.out.println(f);
    }
}

//執行結果
true
true
true
false
false
false

2. Boolean.valueOf(boolean)用法

  a. 當 boolean 型別的引數值為 true ,返回值為 true ;

  b. 當 boolean 型別的引數值為 false ,返回值為 false 。

/**
* Boolean.valueOf(boolean)
*/
public class BooleanTest {
    public static void main(String[] args) {
       boolean a = Boolean.valueOf(true);
       boolean b = Boolean.valueOf(false);
       System.out.println(a);
       System.out.println(b);
    }
}

//執行結果
true
false

2. Boolean.valueOf(String) 與 Boolean(String)

  a. Boolean 類有靜態工廠方法 Boolean.valueOf(String) ,可以直接返回布林型別的值,不需要開闢記憶體空間;

  b. 通過構造器 Boolean(String) 獲取返回的布林值時,都會建立一個新的物件,而這正是我們需要避免的;

  c. 因此,對於同時提供了靜態工廠方法和構造器的不可變類,通常可以使用靜態工廠方法而不是構造器,以避免建立不必要的物件。(*引自《Effective Java 中文版第2版》p17 第五條)