1类的声明
public final class Boolean implements java.io.Serializable,
Comparable<Boolean>
- 不可被继承
- 实现了 Comparable,需要重写 比较器
2成员变量
private final boolean value;
表明Boolean一旦被创建便不可更改,跟String一样。
3静态变量
public static final Boolean TRUE = new Boolean(true);
public static final Boolean FALSE = new Boolean(false);
两个静态变量是为了减少内存消耗,使用时可以直接用
Boolean b = Boolean.TRUE;
4构造方法
public Boolean(boolean value) {
this.value = value;
}
public Boolean(String s) {//1
this(parseBoolean(s));
}
public static boolean parseBoolean(String s) {
return ((s != null) && s.equalsIgnoreCase("true"));
}
- 构造函数 1处时不区分大小写的
5方法
5.1booleanValue()
public boolean booleanValue() {
return value;
}
返回boolean的值
5.2valueOf(boolean b)
public static Boolean valueOf(boolean b) {
return (b ? TRUE : FALSE);
}
public static Boolean valueOf(String s) {
return parseBoolean(s) ? TRUE : FALSE;
}
这个是一个工厂方法,可以根据传入的布尔类型值获取指定的静态变量,从而减少内存和时间消耗
5.3hashCode()
public int hashCode() {
return Boolean.hashCode(value);
}
public static int hashCode(boolean value) {
return value ? 1231 : 1237;
}
根据值不同,返回的int不同,这两个值有啥用?
5.4equals(Object obj)
public boolean equals(Object obj) {
if (obj instanceof Boolean) {
return value == ((Boolean)obj).booleanValue();
}
return false;
}
没啥注意的
5.5compareTo(Boolean b)
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);
}