Object类详解

本文详细介绍了 Java 中的基础类 Object 的核心方法 equals 和 toString,以及 hashCode 方法的重要性和使用场景。探讨了这些方法在类继承和对象比较中的作用,并强调了正确覆盖 equals 和 hashCode 的必要性。

包:java.lang.Object

Object 是java中的root类,所有类都继承它,也就实现了 object的所有方法。

-----------------常用方法---------------------

构造方法:

1 public class Object {
2 
3     private static native void registerNatives();
4     static {
5         registerNatives();
6     }

equals:

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

toString():

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

我暂时就知道这两个会被子类复写。也尽量去复写吧。

--------------------equals() 方法的特点-------------------------------

自反性: x.equals(x) -> true

对称性: x.equals(y) -> true , y.equals(x) -> true

传递性: x.equals(y) -> true , y.equals(z) -> true , x.equals(z) -> true

一致性: x.equals(y) 多次调用返回值不变.

对于和非空引用x , x.equals(null) ->false

true表明两个引用指向同一个object.

当Override equals()方法时候,必须也要override hashCode()方法。因为相等的对象也有相同的hashcode值。

--------------------hashCode()-----------------------------------

为了更好的使用java.util.HashTable.

特点:

在Java的一次执行过程中,对于同一个对象的hashCode调用,返回相同的值。不同的执行过程中,hashcode值可以不一致。

如果两个对象equals->true,那么他们的hashCode值必须相同

对于两个对象equals->false, 那么这两个对象的hashcode 值不一定要求不同,但是不同可以提高应用的性能。

Object对象的hashCode()不同,因为它表示的是对象的地址。

 

转载于:https://www.cnblogs.com/leohxj/archive/2012/05/24/2516279.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值