键盘上流淌的日子

不一样的生活

Java.lang.Object 类

Object是所有类默认的父类,即在编译器编译时会默认的为所有类增加Object的继承,因此Object类的方法是所有类都可以调用的。
以下便是Object所有签名方法:

    private static native void registerNatives();
    public final native Class<?> getClass();
    public native int hashCode();
    public boolean equals(Object obj);
    protected native Object clone() throws CloneNotSupportedException;
    public String toString();
    public final native void notify();
    public final native void notifyAll();
    public final native void wait(long timeout) throws InterruptedException;
    public final void wait(long timeout, int nanos) throws InterruptedException;
    public final void wait() throws InterruptedException;
    protected void finalize() throws Throwable;

如上所示,即是Object的所有方法,其中绝大部分都是JNI的本地方法,
getClass:获取类的Class
hashCode:获取对象的散列值
clone:实现对象的浅拷贝
wait(..):阻塞线程,释放对象锁
notify(..):唤醒线程,尝试夺回对象锁

Object也对equals做了默认实现

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

从源代码可以知道,Object的equals实现只是简单对两个对象地址做了比较,并没有做深度比较,所以要实现深度比较,还是要重新equals方法,例如String类所做的那样。
虽然Object是所有类的父类,但是并没有多复杂,其中对于线程处理的wait/notify系列方法要知道使用方法,wait/notify系列方法与Thread中sleep等系列方法的区别。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/securitit/article/details/51564261
文章标签: Java
个人分类: JDK 源码分析 系列
想对作者说点什么? 我来说一句

Swing之JTable详解

2012年03月23日 164KB 下载

没有更多推荐了,返回首页

不良信息举报

Java.lang.Object 类

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭