Boolean

提供了 2 个重要的静态对象

public static final Boolean TRUE = new Boolean(true);

public static final Boolean FALSE = new Boolean(false);

作用:缓存,提升性能。

提供 2 个构造器创建 Boolean 对象

public Boolean(boolean value) {
    this.value = value;
}

public Boolean(String s) {
    this(parseBoolean(s));
}

提供 2 个静态方法创建 Boolean 对象

public static Boolean valueOf(boolean b) {
    return (b ? TRUE : FALSE);
}

public static Boolean valueOf(String s) {
    return parseBoolean(s) ? TRUE : FALSE;
}

提供了一个字符串转 Boolean 对象方法

public static boolean parseBoolean(String s) {
    return ((s != null) && s.equalsIgnoreCase("true"));
}

提供了 Boolean 值转字符串的方法

public static String toString(boolean b) {
    return b ? "true" : "false";
}

public String toString() {
    return value ? "true" : "false";
}

*重写了 hashcode *

@Override
public int hashCode() {
    return Boolean.hashCode(value);
}

public static int hashCode(boolean value) {
    return value ? 1231 : 1237;
}

equals

public boolean equals(Object obj) {
    if (obj instanceof Boolean) {
        return value == ((Boolean)obj).booleanValue();
    }
    return false;
}

比较

public int compareTo(Boolean b) {
    return compare(this.value, b.value);
}

public static int compare(boolean x, boolean y) {
    return (x == y) ? 0 : (x ? 1 : -1);
}

逻辑比较,1.8版本开始

public static boolean logicalAnd(boolean a, boolean b) {
    return a && b;
}

public static boolean logicalOr(boolean a, boolean b) {
    return a || b;
}

public static boolean logicalXor(boolean a, boolean b) {
    return a ^ b;
}

总结

  1. 提供了字符串和boolean值的相互转换方法

  2. 使用valueOf而不是构造器创建Boolean对象,提高性能

  3. 重写了hashcod函数

  4. compare比较

  5. 逻辑判断,1.8之后。