Java中的Object类

1. Object类

     (1)Object类是所有类的父类,包括我们自定义的类。我们也经常会用到甚至重写Object中的一些方法,如equals、hashcode、toString、wait/notify等等。

 

2. Object类常用方法

      (1)public int hashCode()

               返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。

               几条规则

                        同一个对象,无论执行多少次hashcode,返回的哈希值都是一样的;

                        同一个程序,在不同系统中,计算的哈希值可能不同的;

                        两个对象在执行equals方法时相等,那他们分别执行hashcode所返回的值也一样;

                        在自定义类时,如果重写equals方法,那也必须重写hashcode方法;

 

      (2)public boolean equals(Object obj)

               指其他对象是否与此对象“相等”,在自定义类时,我们经常需要自己重写equals方法,来定义我们自己想要的“相等”逻辑。

               几个特性

                        自反性:对于任何非空引用值x,x.equals(x),都应返回true;

                        对称性:对于任何非空引用值x和y,当且仅当y.equals(x)返回true时,x.equals(y)才应返回true;

                        传递性:对于任何非空引用值x、y、z,如果x.equals(y)返回true,并且y.equals(z)返回true,那么x.equals(z)应返回true;

                        一致性:对于任何非空引用值x和y,多次调用x.equals(y)都返回true或者false,前提是对象上equals比较中所用的信息没有被修改;

                        对于任何非空引用值x.equals(null)都应返回false;

 

      (3)public String toString()

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

 

      (4)protected void finalize()

                       当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。子类可重写finalize方法,以配置系统资源或执行其他清除。

 

      (5)notify/notifyAll/wait方法

                       notify唤醒在此对象监视器等待的单个线程。如果所有线程都在此对象上等待,则会任意选择其中一个线程。

                       notifyAll唤醒在此对象监视器等待的所有线程,被唤醒的线程将以常规的方式与在此对象上主动同步的其他所有线程进行竞争

                       wait方法在某线程中被调用时,会导致该线程在指定对象的监视器上进行等待。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值