一、Object类

一、Object类

Object类的结构图

结构图

	public class Object {
        //一个本地方法,具体是用c(c++)在DLL中实现的
        private static native void registerNatives();
        
        //对象初始化时自动调用此方法
        static {
    		registerNatives();
		}
        
        //返回此Object的运行时类
        public final native Class<?> getClass();
		
        //返回对象的hash码值,一般由对象的地址转化过来,同一个对象调用hashCode的返回值时一样的,当两个对象的equals的返回值为true,那么hashCode一定相等,反之则不一样相等
		public native int hashCode();
        
        //比较对象的内存地址,可以在其他类中进行重写
        public boolean equals(Object obj) {
    		return (this == obj);
		}
        
        //clone()是Object类的一个protectde,用于对象的克隆
		protected native Object clone() throws CloneNotSupportedException;
        
        //返回该对象的对象名和hashCode,但在是实战中原生的toString作用不大,重写toString是为了方便调试,知道对象的属性值。
        public String toString() {
    		return getClass().getName() + "@" + Integer.toHexString(hashCode());
		}
        
        //不能被重写,用于唤醒一个在因等待该对象(调用了wait方法)被处于等待状态(waiting 或 time_wait)的线程,该方法只能同步方法或同步块中调用
        public final native void notify();
        
        //不能被重写,用于唤醒所有在因等待该对象(调用wait方法)被处于等待状态(waiting或					time_waiting)的线程,该方法只能同步方法或同步块中调用
        public final native void notifyAll();
		
        //不能被重写,用于在线程调用中,导致当前线程进入等待状态(time_waiting),timeout单位为毫秒,该方法只能同步方法或同步块中调用,超过设置时间后线程重新进入可运行状态
        public final native void wait(long timeout) throws InterruptedException;
        
        与 wait(long timeout) 的效果一样,但是比 wait(long timeout) 更加精确,
        public final void wait(long timeout, int nanos) throws InterruptedException {
    		if (timeout < 0) {
        		throw new IllegalArgumentException("timeout value is negative");
    		}

    		if (nanos < 0 || nanos > 999999) {
        		throw new IllegalArgumentException(
                	"nanosecond timeout value out of range");
    		}

    		if (nanos > 0) {
        		timeout++;
    		}

    		wait(timeout);
		}

        public final void wait() throws InterruptedException {
    		wait(0);
		}
        
        //这个方法用于当对象被回收是调用,这个有JVM支持,Object的finalize方法默认是什么都没有做,如果子类需要在对象被回收时执行一些逻辑处理,则可以重写finalize方法。
        protected void finalize() throws Throwable { }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值