Object介绍

1.方法简介

    1> Object clone()   ---->创建并返回对象的副本

    2> boolean equals(Object obj)   -->某个其他对象是否与该对象“相等”

    3> void finalize()   --->当垃圾回收器确定不存在该对象的更多引用时,由对象的垃圾回收器调用此方法进行回收

    4> Class getClass()   --->  返回一个对象运行时类

    5> int hashCode   --->返回对象的哈希码值

    6>void notify    --->唤醒在此对象监视器上等待的单个进程。

    7> void notifyAll  ---> 唤醒在此对象监视器上等待的所有进程

    8>String toString()  --->返回该对象的字符串表示

    9> void wait()  ---->导致当前对象等待,直到其他线程调用该对象的notify()或是notifyAll()方法

    10> void wait(long timeout)  --->导致当前对象等待,直到其他线程唤醒或是超过指定的时间量

    11> void wait(long timeout,int nanos)  --->...........或者某个其他线程中断当前线程。

2.重点说明

    1>hashCode ,常规规定:在java应用程序执行期间,同一对象调用hashCode(),必须返回相同的整数。前提是equals比较中所用的信息没有被修改。不同程序的执行,无需一致。如果根据equals(Object)调用两个对象相等,则hashCode也是相同的。

    2>equals队形必须是同一对象的引用,才会true。重写该方法,为了维护常规规定,要重写hashCode

    3>clone, 这里对象的副本是浅复制。

        浅复制:被复制对象的所有变量都含有与原来对象相同的值,而所有的对其他对象的引用,仍指向其原来的对象                        (仅复制所考虑的对象,而不复制所引用的对象)

        深复制:引用其他对象的变量将指向被复制的新的对象。(把复制的对象所引用的所有对象都复制一遍)

        Cloneable实现其接口可重写clone方法,o=(student)super.clone;;;;如果是深复制,则要在重写的方法中进行其他引用复制:o.p=(Teacher)p.clone();

        如果引用层次比较高,要层层深度clone,且每个对象都要实行Cloneable接口,比较麻烦,可以用序列化。

        对象序列化:将对象的状态转化为字节流,再通过这些值生成相同状态的对象。对象都实现Serializable接口。

                            public Object deepClone()throws...{

                                  ByteArrayOutputstream bo=new ByteArrayOutputStream();

                                  ObjectOutputstream oo=new ObjectOutputStream(bo);

                                  oo.writeObject(this);   //将对象写在流里

                                  ByteArrayInputStream bi=new ByteArrayInputStream();

                                  ObjectInputStream oi=new ObjectInputStream(bi);

                                  return(oi.readObjct());   //丛流里读出来

                            }

    4>toString()    返回:getClass.getName+'@'+Integer.toHexString(hashCode())   此对象哈希码的无符号十六进制

    5> notify()   选择一个线程唤醒,是任意的。竞争的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值