美文网首页
6 java.lang.Boolean

6 java.lang.Boolean

作者: 十丈_红尘 | 来源:发表于2018-09-21 20:48 被阅读0次

1️⃣类定义

public final class Boolean implements java.io.Serializable, Comparable<Boolean>
  1. 类声明的时候使用了final表示类不能被继承;
  2. 实现了Serializable接口支持序列化;
  3. 实现了Comparable接口表示需要重新比较器;

2️⃣变量

成员变量:表明boolean一旦被创建将不可更改,这一点和String是一样的;

private final boolean value;

静态变量:两个静态变量是为了减少内存消耗,使用时可以直接使用;

public static final Boolean TRUE = new Boolean(true);
public static final Boolean FALSE = new Boolean(false);

3️⃣构造方法

    /**
     * 根据传入的boolean值来创建对象,只能传入true或者false;
     */
    public Boolean(boolean value) {
        this.value = value;
    }

    /**
     * 默认调用parseBoolean()这个构造器进行对象创建,默认值为false
     * 与第一个构造器不同的是,这个构造器忽略了大小写且可以接受任
     * 意字符串,只有传入的字符串为true的时候才为true,非true均为false
     */
    public Boolean(String s) {
        this(parseBoolean(s));
    }

    /**
     * 这个构造器忽略了大小写且可以接受任
     * 意字符串,只有传入的字符串为true的时候才为true,非true均为false
     */
    public static boolean parseBoolean(String s) {
        return ((s != null) && s.equalsIgnoreCase("true"));
    }

4️⃣方法

返回对象的boolean值

    public boolean booleanValue() {
        return value;
    }

这两个方法可以根据传入的布尔类型值获取指定的静态变量,从而减少内存和时间消耗

    public static Boolean valueOf(boolean b) {
        return (b ? TRUE : FALSE);
    }

    public static Boolean valueOf(String s) {
        return parseBoolean(s) ? TRUE : FALSE;
    }

根据不同的值返回不同的int

    @Override
    public int hashCode() {
        return Boolean.hashCode(value);
    }

    public static int hashCode(boolean value) {
        return value ? 1231 : 1237;
    }

重写的equals

    public boolean equals(Object obj) {
        // 判断是否是Boolean类型
        if (obj instanceof Boolean) {
            // 如果是Boolean类型则调用booleanValue()拿到返回值并进行强转;
            return value == ((Boolean)obj).booleanValue();
        }
        // 如果不是则直接返回false
        return false;
    }

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

相关文章

  • 6 java.lang.Boolean

    1️⃣类定义 类声明的时候使用了final表示类不能被继承;实现了Serializable接口支持序列化;实现了C...

  • java类型,打印变量类型,类型转换

    java类型 分为两类 基本类型boolean 对应包装类 java.lang.Boolean 类型名称默认值补充...

  • #知识体系精深营#六月+12次作业+第20组2小组+ynqj_a

    6-1 6-1 6-2 6-2 6-3 6-3 6-4 6-4 6-5 6-5 6-6 6-6 6-7 6-7 6...

  • 无标题文章

    1 2 2 3 5 6 6 6 6 6 6 8 3 6

  • 6+6=6

    【九洲芳文】 我不再记得安妮,这句话在一段时间内反复出现在我脑子里,侵蚀着我的神经,仿佛在强迫我遗忘记忆里某些很重...

  • 6/6

    今天又被骂了,会议又出错了,心情更糟了,即使有人开始分担工作,但是还是很晚下班。昨晚去运动,后来也没自己的份,这样...

  • 6/6

    口号(如:父母的高度就是孩子的起点)#孩子第二个30天目标:早睡加早起,培养清理整理书包学习桌面的能力 妈妈第二个...

  • 6/6

    通过这些年的实验,都证实了一点,自己所想的所要的都慢慢一点一点的实现了。所以,只要敢想,敢做,我们最终会成为自己想...

  • 6/6

    分解目标:个人月任务除以24。当天目标未完成,累计到第二天。 月度工作安排:第一周资源积累。第二周开单积累。第三周...

  • 6 6

    这是六月三日的的月亮

网友评论

      本文标题:6 java.lang.Boolean

      本文链接:https://www.haomeiwen.com/subject/hqvznftx.html