Object类
参考博客: http://blog.csdn.net/zhou_vip/article/details/71307868
public int hashCode():返回改对象的哈希码值
哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,
但是不是实际地址值。
public final Class getClass():返回此Object的运行时类
Class类的方法:public String getName():以String的形式返回此Class
对象所表示的类
public String toString():返回该对象的字符串表示 (建议所有子类都重写此方法)
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)
、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,
它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
注意:直接输出一对象的名称,其实就是调用对象的toString方法
public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。
默认情况下比较的是地址值
注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护
hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。
源码:
public boolean equals(Object obj){
return (this == obj);
}
同一个类的字节码文件对象在内存中只加载一次
注意:equals方法只能比较引用类型,且默认情况下,比较的是地址值。
一般我们会重写此方法,比较对象的成员变量值是否相等
*****细节:
Object类的equals()方法:
如果equals()相等,hashCode()一定相等;
如果hashCode()相等,equals()不一定相等(Hash散列值有冲突的情况,虽然概率很低)。
protected void finalize() throws Throwable:
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
用于垃圾回收,但什么时候回收,不确定
子类重写 finalize 方法,以配置系统资源或执行其他清除。
protected Object clone() throws CloneNotSupportedException:
创建并返回此对象的一个副本。
1.因为是protected修饰的,只能在子类访问到,要想在其他类中也
访问到,需要在子类中重写该方法,alt+/自动生成
2.让被克隆的类实现Cloneable接口
细节:Cloneable接口:一个类实现了 Cloneable 接口,
以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。
这个接口是标记接口(不含任何方法),告诉我们实现该接口的类就可以实现对象的复制了。
public int hashCode():返回改对象的哈希码值
哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,
但是不是实际地址值。
public final Class getClass():返回此Object的运行时类
Class类的方法:public String getName():以String的形式返回此Class
对象所表示的类
public String toString():返回该对象的字符串表示 (建议所有子类都重写此方法)
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)
、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,
它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
注意:直接输出一对象的名称,其实就是调用对象的toString方法
public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。
默认情况下比较的是地址值
注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护
hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。
源码:
public boolean equals(Object obj){
return (this == obj);
}
同一个类的字节码文件对象在内存中只加载一次
注意:equals方法只能比较引用类型,且默认情况下,比较的是地址值。
一般我们会重写此方法,比较对象的成员变量值是否相等
*****细节:
Object类的equals()方法:
如果equals()相等,hashCode()一定相等;
如果hashCode()相等,equals()不一定相等(Hash散列值有冲突的情况,虽然概率很低)。
protected void finalize() throws Throwable:
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
用于垃圾回收,但什么时候回收,不确定
子类重写 finalize 方法,以配置系统资源或执行其他清除。
protected Object clone() throws CloneNotSupportedException:
创建并返回此对象的一个副本。
1.因为是protected修饰的,只能在子类访问到,要想在其他类中也
访问到,需要在子类中重写该方法,alt+/自动生成
2.让被克隆的类实现Cloneable接口
细节:Cloneable接口:一个类实现了 Cloneable 接口,
以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。
这个接口是标记接口(不含任何方法),告诉我们实现该接口的类就可以实现对象的复制了。