java源码之Object类

java源码之Object类

Object是所有类的父类,任何类都默认继承Object。每个类都使用 Object 作为超类。所有对象(包括数组) 都实现这个类的方法。

1.构造方法

public Object();

当是在JDK源码中被没有Oject类的构造方法。如果一个类没有构造方法的话那么编译器会自动给它加一个没有参数的构造方法。Oject类只有一个无参构造。

2.常用方法

1.getClass(),返回此 Object 的运行时类

返回对象执行时的Class实例,然后可使用此实例调用getName()方法可以取得类的名称。

2.hashCode(),返回该对象的哈希码值。

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

3.equals(Object obj) ,指示其他某个对象是否与此对象“相等”

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

Object类equals源码中是用 == 来比较两个对象是否相等。通过用来判断两个对象的地址是否相等(即,是否是同一个对象)来区分它们是否相等。

但是,使用默认的“equals()”方法,等价于“==”方法。因此,我们通常会重写equals()方法:若两个对象的内容相等,则equals()方法返回true;否则,返回fasle。String类中就重写的equals方法,用来判断两对象的内容是否相等。

4.toString(),返回字符串表示的对象。

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

Object类toString源码中。toString只是返回了此类的类名和16进制的哈希值。在实际开发中并没有意义。因此我们可以通过在类里面重写toString()方法,把默认的字符串内容改成我们自己想要表达的正常信息的字符串内容。

5.clone(),复制对象。一般需要实现Cloneable接口。

protected native Object clone() throws CloneNotSupportedException;

从源码中看出:

1.clone方法是native方法,native方法的效率远高于非native方法,因此还是使用clone方法去做对象的拷贝而不是使用new的方法,copy。

2.此方法被protected修饰。只有当前类的成员与继承该类的类才能访问。所以需要重写此方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值