6java源码解析-Boolean

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);
    }

猜你喜欢

转载自blog.csdn.net/qq_32726809/article/details/82627541
今日推荐