java源码分析(8)-Boolean
2016-06-02 10:24
435 查看
Boolean
1.Boolean类
Boolean为final修饰,不能被继承,实现了java.io.Serializable接口和Comparable<Boolean>接口,可以序列化和进行比较,Boolean没有无参构造器。
2.parseBoolean
3.取值
Boolean取value值的函数不是getValue(),而是booleanValue()
4.hashCode
public int hashCode() {
return value ? 1231 : 1237;//Boolean的哈希值只有固定的两个值,true为1231,false为1237
}
5.equals
重写了equals方法,将参数强转后比较value地址值(总共就只有两个地址值,true和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
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,其余都为false this(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大 }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 从源码安装Mysql/Percona 5.5
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序