java源码分析(8)-Boolean
来源:互联网 发布:网络七大神兽 编辑:程序博客网 时间:2024/06/07 04:06
Boolean
1.Boolean类
Boolean为final修饰,不能被继承,实现了java.io.Serializable接口和Comparable<Boolean>接口,可以序列化和进行比较,Boolean没有无参构造器。
public final class Boolean implements java.io.Serializable, Comparable<Boolean>{ public static final Boolean TRUE = new Boolean(true);//因为Boolean就只有两个值,故直接在jvm启动时便生成这两个值并建立引用 public static final Boolean FALSE = new Boolean(false); public static final Class<Boolean> TYPE = Class.getPrimitiveClass("boolean");//Boolean类型为本地原始类 private final boolean value; public Boolean(boolean value) {this.value = value; } public Boolean(String s) {//Boolean有一个可以传入字符串的构造器,只当字符串为“true”时,value为true,其余都为falsethis(toBoolean(s)); }
private static boolean toBoolean(String name) { return ((name != null) && name.equalsIgnoreCase("true"));//只要name不为true,统一返回false }
2.parseBoolean
public static boolean parseBoolean(String s) { return toBoolean(s);//再次使用了toBoolean方法,只有传入的字符串为true时,返回为true,其余都为false
}
3.取值
Boolean取value值的函数不是getValue(),而是booleanValue()
public boolean booleanValue() {return value; } public static Boolean valueOf(boolean b) { return (b ? TRUE : FALSE);//用于取boolean参数的boolean值 } public static Boolean valueOf(String s) {return toBoolean(s) ? TRUE : FALSE;//用于取字符串参数的boolean值,遵照toBoolean的规则 }
4.hashCode
public int hashCode() {return value ? 1231 : 1237;//Boolean的哈希值只有固定的两个值,true为1231,false为1237 }
5.equals
重写了equals方法,将参数强转后比较value地址值(总共就只有两个地址值,true和false的地址值)
public boolean equals(Object obj) {if (obj instanceof Boolean) { return value == ((Boolean)obj).booleanValue();} return false; }
6.getBoolean
用于获取系统参数的boolean值,使用前要设置系统属性
} public static boolean getBoolean(String name) { boolean result = false; try { result = toBoolean(System.getProperty(name));//比较的是系统参数,而不是普通的方法中传入的参数,要使返回值为true,必须先设置系统参数名,并设置值为true } catch (IllegalArgumentException e) { } catch (NullPointerException e) { } return result; }7.compareTo
public int compareTo(Boolean b) { return (b.value == value ? 0 : (value ? 1 : -1));//true比false大 }
0 0
- java源码分析(8)-Boolean
- JDK源码分析:java.lang.Boolean
- JDK源码分析之 java.lang.Boolean
- JDK源码分析:java.lang.Boolean
- JDK源码分析:java.lang.Boolean
- JDK源码分析-java.lang.Boolean
- java 源码 Boolean
- java源码-Boolean
- java.lang.Boolean源码
- java.lang.Boolean源码研究
- 基本数据类型boolean的封装类型之Boolean源码分析
- JDK源码分析Java.lang.Boolean的浅析——单例模式的应用(使我们更省内存)
- JDK源码分析Java.lang.Boolean的浅析——单例模式的应用(使我们更省内存)
- java boolean
- 【Java】HashMap源码分析(JDK1.8)
- 简单的Boolean源码
- ConcurrentHashMap Java 8源码分析
- Java 源码分析(一)
- 使用pods的时候再次遇到了一些困难
- Java基础知识点收集
- JAVA时间格式化处理
- 容器监控—阿里云&容器内部服务监控
- mysql 存储过程异常处理
- java源码分析(8)-Boolean
- Windows如何修改MySQL用户root密码
- Spark 1.6 (Java) 问题汇总
- iOS下状态栏和导航栏的控制问题
- C++, Qt Windows关机的时候,阻止其关机或这注销 做其它业务的解决方法
- VRP系统——路由器配置之信息中心基础
- 最好的vsftpd配置教程
- Java构造方法之super用法
- Linux下千兆网卡和万兆网卡ethtool对比