java中的Objects类

Object类功能分析

1 .  Object类的api

我们可以看到Objects类是Final的,即不可以被其他类继承,并且它里面的方法都是static的。说明这是一个工具类
接下来我们分析一下他们的功能,废话不说,直接上代码。

 


 1. equals ,deepEquals    比较两个对象是否相等



可以看到equals方法的功能是判断两个对象     是否是同一个对象或者两个对象是否相等










deepEquals就比较严格一点,它的功能是首先比较两个对象是否是同一个对象,然后再调用对象的equals方法。

1)首先它比较两个对象是否是同一个对象; 2) 如果不是,再判断它们是否是矩阵,对于矩阵的每个元素,它们是否是同一个对象   3)最后调用对象的equals方法




2 . 计算对象的hashcode 

hashCode(Object),hashCode(Object...)

说明: hashCode(Object)是计算单个对象的hashCode , hashCode(Object...)是计算矩阵的hashCode



没什么说的,对象要是为null , hashCode的值为  0









String   hashcode





对于矩阵的hashCode : 计算公式      s[0] * 31 ^ (n -1)   +  s[1 ] * 31 ^ (n-2)   + ....   + s[n-1]     + 31 ^ n

        String的hashCode:计算公式  : s[0] * 31^(n-1)    +  s[1] * 31 ^ (n-2)  +  ........  + s[n-1]

可以看出  矩阵的hashCode的计算公式比String的hashCode的计算公式多了一个后缀  31^ n




3. toString


加强版的toString多了一个nullDefault ,当对象为null的时候,默认的toString值 ,我觉得是防御性编程的一种体现



4 .compare  比较



可以看到,方法传入了一个Comparator接口,它是一个函数式接口,这也是函数式编程思想的一种体现。


5.  判断非null  requireNonNull(Object) ,requireNonNull(Object,String messgae)









如果对象为Null ,则抛出异常,否则返回这个对象本身


6.判断对象是否为Null





判断对象是否为Null ,返回true,false









总结: Objects的功能       1) 判断是否相等
  2)计算hashCode
  3)toString
  4)compare比较
  5 )  判断对象是否非Null,并返回这个对象
  6 )判断对象是否非Null , 返回true,false

 
















  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值