简单的Boolean源码

简单的Boolean源码

  • 继承了java.io.Serializable, Comparable, 首先看看compareTo的实现,这里就可以看出源码果然比普通程序员的代码好

    这里写图片描述
    这里写图片描述
    普通程序员一般会在这里直接写,这里还封装了一个compare方法,compare为静态方法,既可以给外部使用,也可以被compareTo复用,代码短小即为美。

  • 常量解析
    这里写图片描述
    享元模式的使用,达到多个对象都使用一份内存

    这里写图片描述
    真正存储value的地方,还是以boolean基本类型存储

  • 比较有趣的地方hashcode
    这里写图片描述
    这里使用的是2个数字固定数字作为hashcode,boolean才2个值,使用固定数字可以理解,可是为什么使用这2个数字呢?应该不是凭空捏造的把,于是只能网上找一下
    这里写图片描述
    具体链接可以看 http://stackoverflow.com/questions/3912303/boolean-hashcode
    大概意思是:

    • 使用质素是因为假如要把Boolean指插入到hashtable中,如果不是质素的话可能会比较容易造成哈希冲突,上面也举例子了,
    • 为什么不是比较小的质素呢?这考虑到复合对象的情况,符合对象计算hashcode的时候通常会把各个属性的hashcode相加然后再做hash,如果是比较小的质素,容易造成hash分布不均匀
    • 有冲突吗?Boolean才2个值,这就考虑到把Boolean 放到一个map中了,map中也可以put其他对象

    不得不敬佩这些开源源码的作者,考虑得如此周全。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值