Java源码阅读 - StringBuilder、Boolean

本文详细介绍了Java中的StringBuilder类,包括其构造器、常用方法如append和insert。同时,文章也深入解析了Boolean类,包括其静态变量、构造器、转换方法以及逻辑操作方法。还探讨了Boolean类的hashCode方法和系统配置值的获取。此外,文章还展示了如何进行比较和逻辑运算,如logicalAnd、logicalOr和logicalXor。
摘要由CSDN通过智能技术生成

StringBuffer

  1. 构造器
// 默认构造器容量16个字符
public StringBuilder() {
    super(16); 
}
// 可设置容量构造器
public StringBuilder(int capacity) {
 	super(capacity);
}
// 字符串构造器,长度默认+16
public StringBuilder(String str) {
    super(str.length() + 16);
    append(str);
}
public StringBuilder(CharSequence seq) {
    this(seq.length() + 16);
    append(seq);
}

StringBuilder的append族,insert族等方法都为调用AbstractStringBuilder父类方法,不做赘述

Boolean

  1. 静态变量
// TRUE or FALSE
public static final Boolean TRUE = new Boolean(true);
public static final Boolean FALSE = new Boolean(false);
// Type指代boolean基础类型
public static final Class<Boolean> TYPE =
 (Class<Boolean>) Class.getPrimitiveClass("boolean");
// value为基础类型boolean
private final boolean value;
  1. 构造器
// 基础类型构造器
public Boolean(boolean value) {
        this.value = value;
    }
// 字符串构造器
public Boolean(String s) {
	this(parseBoolean(s));
}
// 需要判断是否null及是否等于忽略大小写的"true"
public static boolean parseBoolean(String s) {
	return ((s != null) && s.equalsIgnoreCase("true"));
}
  1. 基础方法
// 获取value
public boolean booleanValue() {
	return value;
}
// 转Boolean方法
public static Boolean valueOf(boolean b) {
	return (b ? TRUE : FALSE);
}
// 字符串转Boolean方法
public static Boolean valueOf(String s) {
	return parseBoolean(s) ? TRUE : FALSE;
}
// 返回"true"或"false"
public static String toString(boolean b) {
	return b ? "true" : "false";
}
// 无参数返回"true"或"false"
public String toString() {
	return value ? "true" : "false";
}
  1. hashCode方法
public int hashCode() {
	return Boolean.hashCode(value);
}
// 固定返回1231 or 1237
// 1231 与1237是大于31的素数,这个数字的选择只需要为素数,可以优化散列表的性能
public static int hashCode(boolean value) {
	return value ? 1231 : 1237;
}
  1. 获取系统配置key的值
public static boolean getBoolean(String name) {
        boolean result = false;
        try {
            result = parseBoolean(System.getProperty(name));
        } catch (IllegalArgumentException | NullPointerException e) {
        }
        return result;
    }
  1. 对比方法
public int compareTo(Boolean b) {
   return compare(this.value, b.value);
}
// 判断是否相等,相等判断是否为1即true
public static int compare(boolean x, boolean y) {
    return (x == y) ? 0 : (x ? 1 : -1);
}
  1. 条件方法
// 返回 a && b
public static boolean logicalAnd(boolean a, boolean b) {
	return a && b;
}
// 返回 a 或者 b 为true
public static boolean logicalOr(boolean a, boolean b) {
	return a || b;
}
// 异或运算
public static boolean logicalXor(boolean a, boolean b) {
	return a ^ b;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值