本系列是对JDK源码中8种数据类型的简单了解。
JDK源码解析(5)——Short、Long、Double、Float
Boolean是8大基础数据类型中比较简洁的一个数据类型,下面我们深入了解一下。
一、类的定义
通过类的定义,我们可以看到Boolean不能被继承。由于继承了Comparable接口,所以Boolean类被自然排序,我们可以调用compareTo方法来和Boolean类型的对象进行比较。
public final class Boolean implements java.io.Serializable, Comparable<Boolean>
二、类的属性
与Integer类似,Boolean的私有属性是boolean。
1、私有属性
private final boolean value;
private static final long serialVersionUID = -3665804199014368530L;
2、公共属性
public static final Boolean TRUE = new Boolean(true);
public static final Boolean FALSE = new Boolean(false);
public static final Class<Boolean> TYPE = (Class<Boolean>) Class.getPrimitiveClass("boolean");
三、类的方法
1、构造方法
Integer提供了两个构造方法:
public Boolean(boolean value) {
this.value = value;
}
//如果参数s不是null,忽略其大小写,若是true,则将分配一个值为true的Boolean的对象,其余都为false(例如yes也将分配为false)。
public Boolean(String s) {
this(parseBoolean(s));
}
2、方法
public static boolean parseBoolean(String s) {
return ((s != null) && s.equalsIgnoreCase("true"));
}
//返回Boolean的初始boolean值
public boolean booleanValue() {
return value;
}
//将基本类型boolean转化为boolean包装类
//此方法要优于构造方法,具有更好的时空性能
public static Boolean valueOf(boolean b) {
return (b ? TRUE : FALSE);
}
//将字符串转化为Boolean实例
//如果参数s不是null,忽略其大小写,若是
//true,则将分配一个值为true的Boolean的对象,其余都为false
public static Boolean valueOf(String s) {
return parseBoolean(s) ? TRUE : FALSE;
}
//将基本数据类型boolean转化为String
public static String toString(boolean b) {
return b ? "true" : "false";
}
//若当前值是true,返回字符串“true”
public String toString() {
return value ? "true" : "false";
}
//返回当前Boolean的哈希值
//true 返回1231
//false返回1237
public int hashCode() {
return Boolean.hashCode(value);
}
//如果参数obj是Boolean,并且如当前值相同,则返回true
//其余都返回false
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);
}
//返回逻辑与运算结果
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;
}
四、总结
- Boolean 是 boolean 包装类,boolean 是八大基本数据类型之一(byte,char,short,int,long,float,double,boolean)
- Boolean 是类,默认值为null,boolean是基本数据类型,默认值为false;
- Boolean 表示的是对象,用一个引用指向这个对象,而int是基本数据类型,直接存储数值。