Java基础理论之Object类 Objects类

 寄语: 对于类接口和其中方法的学习建议按照jdk文档进行系统学习,具体包,继承关系,构造方法,静态方法,方法这样的学习思路整理会清晰容易记忆方便查询。

Object类

概述

java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。

如果一个类没有特别指定父类,那么默认则继承自Object类。例如:

默认继承
public class MyClass /*extends Object*/ {
  	// ...
}

所属包:

java.lang Class Object

构造方法:

Object()

方法

根据JDK源代码及Object类的API文档,Object类当中包含的方法有11个

protected Object clone() 创建并返回此对象的副本。  
public boolean equals(Object obj)`:指示其他某个对象是否与此对象“相等”。  
protected void finalize() 当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。  
类<?> getClass() 返回此 Object的运行时类。  
int hashCode() 返回对象的哈希码值。  
void notify() 唤醒正在等待对象监视器的单个线程。  
void notifyAll() 唤醒正在等待对象监视器的所有线程。  
String toString() 返回对象的字符串表示形式。  
void wait() 导致当前线程等待,直到另一个线程调用该对象的 notify()方法或 notifyAll()方法。  
void wait(long timeout) 导致当前线程等待,直到另一个线程调用 notify()方法或该对象的 notifyAll()方法,或者指定的时间已过。  
void wait(long timeout, int nanos) 导致当前线程等待,直到另一个线程调用该对象的 notify()方法或 notifyAll()方法,或者某些其他线程中断当前线程,或一定量的实时时间。  

toString方法

  • public String toString():返回该对象的字符串表示。

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

equals方法

  • public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。
    java.util.Objects
  • public static boolean equals(Object a, Object b):判断两个对象是否相等。
    调用成员方法equals并指定参数为另一个对象,则可以判断这两个对象是否是相同的。这里的“相同”有默认和自定义两种方式。

默认地址比较

如果没有覆盖重写equals方法,那么Object类中默认进行==运算符的对象地址比较,只要不是同一个对象,结果必然为false。

对象内容比较

如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法。

 String的equal (下图)  stringbuild 没有重写equal 方法 用的是object的方法 使用 == 比较

object 的 getclass() 方法 可以获取object里面的数据的具体数据类型;

Objects
 

public static String toString(Object o, String nullDefault) {
    return (o != null) ? o.toString() : nullDefault;
}
public static boolean isNull(Object obj) {
    return obj == null;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值