超类Object的方法介绍

本文介绍了Java中Object类的三个重要方法:equals、hashCode和toString。equals默认通过==比较,通常需要重写以比较对象内容。hashCode返回对象的哈希码,是native方法,可以通过JNI调用底层实现。toString方法返回对象的字符串表示,建议子类重写以提供更有意义的信息。

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

超类Object

类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。这些方法可以分为9种。常被重写的方法:toString()、equals(obj)、hashCode();线程相关的方法:notify()、notifyAll()、wait();另外三种:clone()、getClass()、finalize()。

1、equals ————————————————————————

public boolean equals(Object obj)

作用:常用于比较其他某个对象是否与此对象相等。

源码

 public boolean equals(Object obj) {
 	return (this == obj);
 }

可见equals()方法的底层是通过==实现的,但这样的意义不是很大,通常会对其以及hashCode()一并重写。

注意equals和==的区别

  • == 比较
    • 基本类型:比较的就是值是否相同。
    • 引用类型:比较的是地址是否相同。
  • equals 比较
    • 基本类型:比较的是值是否相同,但要是基本类型对应的包装类型才能使用equals比较。
    • 引用类型:默认比较的是地址,但绝大多数情况下都会对equals进行重写,重写之后一般都是比较值否是相同,成员变量是否相同等。

补充:Java重写了equals的常用类有哪些?

2、hashCode ——————————————————————

public int hashCode()

作用:返回该对象的哈希码值。

源码

public native int hashCode();

该方法是一个native修饰的方法,具体实现是通过其他语言编写的,Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问。

JNI是Java本机接口(Java Native Interface),是一个本机编程接口,它是Java软件开发工具箱(Java Software Development Kit,SDK)的一部分。JNI允许Java代码使用以其他语言编写的代码和代码库。Invocation API(JNI的一部分)可以用来将Java虚拟机(JVM)嵌入到本机应用程序中,从而允许程序员从本机代码内部调用Java代码。

3、toString ———————————————————————

作用:返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
源码

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

通常可以通过编辑器自动生成重写的toString()方法,以便输出一些更友好的信息,常用于日志的输出中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值