JDK 源码
一、Boolean
public final class Boolean implements java.io.Serializable,
Comparable<Boolean>
因为带有final关键字,也就是不可继承,另外实现了Serializable和Comparable接口,也就是可以进行序列化和比较的。
1.1 公共参数:
true 和 false的参数:
public static final Boolean TRUE = new Boolean(true);
public static final Boolean FALSE = new Boolean(false);
构造函数:
public Boolean(boolean value) {
this.value = value;
}
1.2 parseBoolean()
将字符串转化为boolean
public static boolean parseBoolean(String s) {
return ((s != null) && s.equalsIgnoreCase("true"));
}
1.3 valueOf()
public static Boolean valueOf(boolean b) {
return (b ? TRUE : FALSE);
}
1.4 toString()
public static String toString(boolean b) {
return b ? "true" : "false";
}
1.5 hashCode()
主要这两个是较大的质数(实际上其他较大的质数也可以),至于较大质数的原因是可以有效减少Hash碰撞冲突的发生。
public static int hashCode(boolean value) {
return value ? 1231 : 1237;
}
1.6 equals()
public boolean equals(Object obj) {
if (obj instanceof Boolean) {
return value == ((Boolean)obj).booleanValue();
}
return false;
}
1.7 getBoolean()
而是当且仅当系统属性中存在着对应名称的属性,且它的值为“true”(忽略大小写)时,返回true类型,否则返回false。
public static boolean getBoolean(String name) {
boolean result = false;
try {
result = parseBoolean(System.getProperty(name));
} catch (IllegalArgumentException | NullPointerException e) {
}
return result;
}
1.8 compareTo()
比较,如果x和y相同,则返回0,x为true返回1,否则返回-1
public static int compare(boolean x, boolean y) {
return (x == y) ? 0 : (x ? 1 : -1);
}
1.9 logicalAnd()
public static boolean logicalAnd(boolean a, boolean b) {
return a && b;
}
1.9 logicalOr()
或运算
public static boolean logicalOr(boolean a, boolean b) {
return a || b;
}
1.10 logicalXor()
异或运算
public static boolean logicalXor(boolean a, boolean b) {
return a ^ b;
}