JDK 源码:Boolean

Boolean 是 Java 核心类库中的一个非常基础的类。它是 java.lang 包的一部分,并且用于表示一个布尔值。以下是 JDK 8 中 Boolean 类的源码解析:

package java.lang;

import java.io.Serializable;

public final class Boolean implements Serializable, Comparable<Boolean> {
    // 序列化 ID
    private static final long serialVersionUID = -3665804199014368530L;

    // Boolean true 和 false 的常量
    public static final Boolean TRUE = new Boolean(true);
    public static final Boolean FALSE = new Boolean(false);

    // 真值和假值的字符串表示
    public static final String TRUE_STRING = "true";
    public static final String FALSE_STRING = "false";

    // 实际存储布尔值的字段
    private final boolean value;

    // 构造函数
    public Boolean(boolean value) {
        this.value = value;
    }

    public Boolean(String s) {
        this(parseBoolean(s));
    }

    // 从字符串解析布尔值
    public static boolean parseBoolean(String s) {
        return ((s != null) && s.equalsIgnoreCase(TRUE_STRING));
    }

    // 返回该布尔值的字符串表示
    public String toString() {
        return value ? TRUE_STRING : FALSE_STRING;
    }

    // 返回布尔值
    public boolean booleanValue() {
        return value;
    }

    // 比较两个布尔值
    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 boolean equals(Object obj) {
        if (obj instanceof Boolean) {
            return value == ((Boolean) obj).booleanValue();
        }
        return false;
    }

    // 返回布尔值的哈希码
    public int hashCode() {
        return Boolean.hashCode(value);
    }

    // 布尔值的静态哈希码计算方法
    public static int hashCode(boolean value) {
        return value ? 1231 : 1237;
    }

    // 从字符串转换为 Boolean 对象
    public static Boolean valueOf(String s) {
        return parseBoolean(s) ? TRUE : FALSE;
    }

    // 从布尔值转换为 Boolean 对象
    public static Boolean valueOf(boolean b) {
        return b ? TRUE : FALSE;
    }

    // 内部方法用于返回 true/false 的常量池
    public static final Boolean TRUE = new Boolean(true);
    public static final Boolean FALSE = new Boolean(false);

    // 静态常量 TRUE 和 FALSE
    static {
        TRUE = new Boolean(true);
        FALSE = new Boolean(false);
    }

    // 获取系统属性并返回布尔值
    public static boolean getBoolean(String name) {
        boolean result = false;
        try {
            result = parseBoolean(System.getProperty(name));
        } catch (IllegalArgumentException | NullPointerException e) {
        }
        return result;
    }
}

主要功能解析:

  1. 静态常量 TRUEFALSE

    • Boolean.TRUEBoolean.FALSE 分别代表布尔值 truefalse,并且这些是单例对象,确保相同的布尔值使用同一对象,减少内存开销。
  2. 构造函数

    • Boolean(boolean value):直接通过布尔值初始化。
    • Boolean(String s):通过字符串初始化布尔值。如果字符串等于(忽略大小写)“true”,则值为 true,否则为 false
  3. 布尔值解析

    • parseBoolean(String s):将字符串解析为布尔值。
  4. 布尔值转换为字符串

    • toString():返回布尔值的字符串表示(“true” 或 “false”)。
  5. 布尔值比较

    • compareTo(Boolean b):比较当前对象与另一个布尔对象的值。
    • compare(boolean x, boolean y):静态方法,比较两个布尔值。
  6. 布尔值相等判断

    • equals(Object obj):判断当前对象与另一个对象是否相等。
  7. 哈希码

    • hashCode():返回布尔值的哈希码。
    • hashCode(boolean value):静态方法,计算布尔值的哈希码。
  8. 布尔值转换为对象

    • valueOf(String s):将字符串转换为 Boolean 对象。
    • valueOf(boolean b):将布尔值转换为 Boolean 对象。
  9. 系统属性获取

    • getBoolean(String name):根据系统属性名获取布尔值。

这些方法和属性提供了基本的布尔值处理功能,确保布尔值在 Java 中的高效和可靠使用。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值