2017-10-31 23:42:08
Object类:类 Object
是类层次结构的根类。每个类都使用 Object
作为超类。所有对象(包括数组)都实现这个类的方法。
或者说,每个类都直接或者间接继承了Object类。
常用方法:
-
hashCode(),返回该对象的哈希码值。支持此方法是为了提高哈希表(例如
java.util.Hashtable
提供的哈希表)的性能。[可自动生成]
实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧)
哈希值是根据哈希算法计算出来的值,这个值和地址值有关,但不是地址值。
-
getClass(),返回此
Object
的运行时类。返回的Class
对象是由所表示类的static synchronized
方法锁定的对象。
-
toString(),返回该对象的字符串表示。通常,
toString
方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。[可自动生成]
Object
类的 toString
方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@
”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
- equals(Object obj):指示其他某个对象是否与此对象“相等”。[可自动生成]
Object
类的 equals 方法实现对象上差别可能性最大的相等关系。
注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。
默认情况下,比较的是地址值。比较地址值一般意义不大,所以需要重写该方法。
boolean equals(Object obj) { if(this==obj) return true; if(!(obj instanceof Student)) return false; Student s =(Student) obj; return this.name.equals(obj.name)&&this.age==age; }
- finalized():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。一般不使用,因为无法确认何时能够被收回。
- clone():创建并返回此对象的一个副本。Object 类本身不实现接口 Cloneable,所以在类为 Object 的对象上调用 clone 方法将会导致在运行时抛出异常。
public class Student implements Cloneable 才能使用clone()方法