下面我们来学习Boolean。1
public final class Boolean implements java.io.Serializable,Comparable<Boolean>
被final修饰,不会被继承,内部变量也会默认不可继承。
实现了Comparable,具有比较方法:1
2
3
4//相等返回0,不等X为ture返回1,否则返回-1
public static int compare(boolean x, boolean y) {
return (x == y) ? 0 : (x ? 1 : -1);
}
将最常用的值加入常量池:1
2public static final Boolean TRUE = new Boolean(true);
public static final Boolean FALSE = new Boolean(false);
有一个有意思的地方,true和false的哈希码是固定的:1
2
3public static int hashCode(boolean value) {
return value ? 1231 : 1237;
}
因为这个原因,对boolean参数类型的equals方法做了特殊处理:1
2
3
4
5
6
7//哈哈,这帮人机智啊
public boolean equals(Object obj) {
if (obj instanceof Boolean) {
return value == ((Boolean)obj).booleanValue();
}
return false;
}
有一个奇葩方法:1
2
3
4
5
6
7
8public static boolean getBoolean(String name) {
boolean result = false;
try {
result = parseBoolean(System.getProperty(name));
} catch (IllegalArgumentException | NullPointerException e) {
}
return result;
}
研究了一会发现他没什么用…请知道应用场景的告诉我(如果说用来读配置文件就算了)
1 | //这个名字挺有意思,快用这些东西代替 && 操作吧,1.8后才有哦 |
1 | //平时用的最多的应该就是这个了 |
好了,这个类很简单,咱们快速进入下一个Byte的学习。