Jdk源码分析

文章40 |   阅读 10722 |   点赞0

来源:https://yumbo.blog.csdn.net/category_10384063.html

简化 java.lang.Boolean 类的源码

x33g5p2x  于2021-12-18 转载在 其他  
字(1.5k)|赞(0)|评价(0)|浏览(372)
public final class Boolean implements java.io.Serializable, Comparable<Boolean> {

    @java.io.Serial
    private static final long serialVersionUID = -3665804199014368530L;   // 序列化版本号
    public static final Boolean TRUE = new Boolean(true);       // 表示真的常量
    public static final Boolean FALSE = new Boolean(false);     // 表示假的常量
    private final boolean value;                                // 存储当前对象的数据
    @SuppressWarnings("unchecked")
    public static final Class<Boolean> TYPE = (Class<Boolean>) Class.getPrimitiveClass("boolean");

    @Deprecated(since = "9") public Boolean(boolean value) {}   // 传入一个布尔值value
    @Deprecated(since = "9") public Boolean(String s) {}        // 传入用字符串表示的布尔值

    @HotSpotIntrinsicCandidate
    public boolean booleanValue() {}                            // 得到当前布尔值
    public int compareTo(Boolean b) {}                          // 比较当前值和b的大小调用的是静态方法compare()
    public boolean equals(Object obj) {}                        // 判断obj是否和当前布尔对象相等
    public String toString() {}                                 // 将当前布尔值转换为字符串
    @Override public int hashCode() {
        return Boolean.hashCode(value);                         // 返回布尔值的hash值
    }
    /** * 静态方法 */
    public static boolean parseBoolean(String s) {}             // 解析字符串为boolean
    @HotSpotIntrinsicCandidate
    public static Boolean valueOf(boolean b) {}                 // 封装当前布尔值b
    public static Boolean valueOf(String s) {}                  // 解析并封装当前布尔值
    public static String toString(boolean b) {}                 // 将布尔值b转换为字符串
    public static int hashCode(boolean value) {}                // value为真返回1231、为假返回1237
    public static boolean getBoolean(String name) {}            // 获取name代表的系统参数值并返回该值

    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;                                          // a、b逻辑与操作
    }

    public static boolean logicalOr(boolean a, boolean b) {
        return a || b;                                          // a、b逻辑或操作
    }

    public static boolean logicalXor(boolean a, boolean b) {
        return a ^ b;                                           // a、b逻辑异或操作
    }
}

相关文章