Java Objects类的概述以及自己的理解

Objects类提供了静态实用方法,包括对象比较、哈希计算、字符串转换和边界检查等。compare方法用于根据Comparator比较对象,checkFromIndexSize、checkFromToIndex和checkIndex确保索引不越界。equals与deepEquals的区别在于深浅比较,前者基于引用,后者适用于内容比较。isNull和nonNull分别检查对象是否为空。requireNonNull系列方法用于确保对象非空,否则抛出异常或返回默认值。hash和hashCode方法生成和获取哈希值,toString方法转换对象为字符串,nullDefault参数允许指定空对象的默认字符串表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Objects类:

​ 包含了static实用程序方法,这些实用程序包括了null或null方法。用于计算对象的哈希代码,返回对象的字符串,比较两个对象以及检查索引或子范围值是否超出范围。

​ 方法摘要:

​ 难点:变量和类型为:static int

方法:compare(T a, T b, Comparator<? super T> c)

描述:如果参数相同,则则返回0,否则返回c.compare(a,b)。

​ 检查范围的简单来说就是判断是否下标越界三个方法:变量和类型都是stati int

​ 1、checkFromIndexSize(int fromIndex, int size, int length) 描述 :检查是否在子范围从第一个参数(包括)到(第一个参数+size(第二个参数))(不包括)

​ 2、checkFromToIndex(int fromIndex, int toIndex, int length) 描述:检查是否在子范围从第一个参数(包括)到(第二个参数)(不包括)

​ 3、checkIndex(int index, int length) 描述:检查第一个参数是否在0(包括)-length(不包括)范围内。

​ equals(Object a, Object b) 和 deepEquals(Object a, Object b)的区别: (变量和类型:static boolean)

​ 当我们比较两个内容相等的时候适用deepEquals。(若为对象数组且未重写equals方法,不建议使用。)equals的相等需要两个内容的物理地址相等才相等。如果对象重写了equals不在此情况内。

​ isNull(Object obj) 和 nonNull(Object obj) (变量和类型:static boolean)区别:

​ isNull 如果为null 则true nonNull恰好相反

​ 检查指定对象是否为空的四种方法:(变量和类型均为泛型 static T)

​ requireNonNull(T obj) 检查obj是否不是null,不是null则返回true。从方法名可以看出来意思。

​ requireNonNull(T obj, String message)

​ requireNonNull(T obj, Supplier messageSupplier) 第二个和第三个方法作用相同。检查obj是否不是null,是null则抛出空指针异常。

​ requireNonNullElse(T obj, T defaultObj) 如果不是null则返回第一个参数,是null则返回非null的第二个参数

​ requireNonNullElseGet(T obj, Supplier<? extends T> supplier) 如果不是null则返回第一个参数,是null则返回非null值supplier.get()。

​ hash(Object… values) 变量和类型:static int;为一系列输入值生成哈希码。

​ hashCode(Object o) 变量和类型:static int;返回非的哈希码 null参数,0为 null的论点。

​ toString(Object o) 与 toString(Object o,String nullDefault)区别:(变量和类型都是static String)

​ 如果o不会空则调用toString,第二个方法如果为空则调用第二个参数即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kepnosian

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值