JDK1.8源码学习--lang包(Boolean)

JDK1.8源码学习--lang包(Boolean),第1张

JDK1.8源码学习--lang包(Boolean) 前言


月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂)

央是一片海洋,海乃百川,代表着一块海绵(吸纳万物)

泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出)

月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容

希望大家一起坚持这个过程,也同样希望大家最终都能从零到零,把知识从薄变厚,再由厚变薄!
 

一.Boolean的作用:
  • Boolean是原始类型boolean的包装类,为了更方便的去代替boolean去做一些 *** 作
  • Boolean中包含了boolean的字段,以及true和false值,此外,还提供了很多方法去处理boolean,比如将boolean转化为String,把String转化为boolean的方法
二.Boolean的类图: 

 

Boolean是有实现两个接口:

                a).一个Comparable,这个接口对实现他的每个对象都可按照一定的规则来进行排序,详情请点击下面链接

                  ......(假装这个是链接,以后补充)

                b).一个Secializable,这个接口是可为实现的对象进行序列化,详情请点击下面链接
                  ......(假装这个是链接,以后补充)

三.成员变量:  
  
    public static final Boolean TRUE = new Boolean(true);

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

    
    @SuppressWarnings("unchecked")
    public static final Class TYPE = (Class) Class.getPrimitiveClass("boolean");

    
    private final boolean value;

    
    //序列值
    private static final long serialVersionUID = -3665804199014368530L;
四.构造方法:  
  
    public Boolean(boolean value) {
        this.value = value;
    }

    
    public Boolean(String s) {
        this(parseBoolean(s));
    }
五.成员方法:  

                a.parseBoolean(String s)

                        将字符串解析为一个布尔值

  
    public static boolean parseBoolean(String s) {
        return ((s != null) && s.equalsIgnoreCase("true"));
    }

                b.booleanValue()

                返回boolean的值

    public boolean booleanValue() {
        return value;
    }

                c.valueOf(boolean b)

                     返回包装类Boolean(true或false,取决于boolean)

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

                d.valueOf(String s)

                将字符串转化为boolean的包装类

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

                e.toString(boolean b)

                        将传入的boolean转化为"true"或"false"字符串

    public static String toString(boolean b) {
        return b ? "true" : "false";
    }

                f.toString()

                        将原本内部封装的value转化为"true"或"false"字符串

 
    public String toString() {
        return value ? "true" : "false";
    }

                g.hashCode()

                        计算Boolean的哈希值,内部会调用Boolean.hashCode(),为true就是1231,为false就是1237

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

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

                h.equals(Object obj)

                判断传入的对象的boolean值是否与内部value的boolean值相等

    public boolean equals(Object obj) {
        if (obj instanceof Boolean) {
            return value == ((Boolean)obj).booleanValue();
        }
        return false;
    }

                i.getBoolean(String name)

                        判断以参数name命名的系统属性是否存在且等于"true"字符串时才返回true,否则返回"false"

    public static boolean getBoolean(String name) {
        boolean result = false;
        try {
            result = parseBoolean(System.getProperty(name));
        } catch (IllegalArgumentException | NullPointerException e) {
        }
        return result;
    }

                j.compareTo(Boolean b)

                        比较传入的Booleand的boolean值是否相等,内部调用compare(boolean x,boolean y)方法进行比较

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

                l.逻辑判断,这个基本不怎么用,了解即可

  
    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,确实用的很少,虽然其内部源码很简单,但是存在必有其有效性,相信在未来,会不断跟此类打交道.

        fighting!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5596652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存