Java.lang.Object 类

原创 2016年06月02日 10:12:48

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等系列方法的区别。

版权声明:本文为博主原创文章,未经博主允许不得转载。

自己写自己的java.lang.Object会怎么样?

首先自己定义一个包叫做java.lang,然后在里面定义一个类叫做Object. 然后在里面定义一个方法叫做toString(),返回null.另一个叫sayHello()package java....
  • gaopu12345
  • gaopu12345
  • 2015年11月20日 10:51
  • 637

java Object类常用方法浅解

java Object类常用方法浅解
  • xu511739113
  • xu511739113
  • 2016年08月26日 15:14
  • 2103

自定义java.lang.Object类会怎样

原文地址:http://blog.csdn.net/gaopu12345/article/details/49944255 首先自己定义一个包叫做Java.lang,然后在里面定义一个类叫做Objec...
  • tanga842428
  • tanga842428
  • 2016年10月01日 15:49
  • 687

java.lang.Object是如何成为默认父类的

经常有Java初学者会问为什么一个没有父类的Java类会自动从java.lang.Object类继承。如下面是一个普通的Java类: public class Test    // 从O...
  • xxq_2011
  • xxq_2011
  • 2015年04月01日 18:05
  • 989

java.lang.Object是如何成为默认父类的

经常有Java初学者会问为什么一个没有父类的Java类会自动从java.lang.Object类继承。如下面是一个普通的Java类: public class Test    // 从O...
  • qq_29235047
  • qq_29235047
  • 2017年05月27日 11:21
  • 131

Java利用反射查看类属性和方法例子

import java.lang.reflect.*; import java.util.Arrays;//the class that will be reflected should be imp...
  • lantiancaiyun
  • lantiancaiyun
  • 2014年08月04日 06:39
  • 784

每日学习一个Java类:java.lang.Object

Object类是Java中其他所有类的基类,没有Object类Java面向对象无从谈起。作为其他所有类的基类,Object具有哪些属性和行为,是Java语言设计背后的思维体现。Object类位于jav...
  • yandong_
  • yandong_
  • 2017年03月23日 22:34
  • 63

黑马程序员--反射知识点总结

——- android培训、java培训、期待与您交流! ———- 认识Class类之前学习的java处理的基本机制,是先把java源文件通过java编译器编译后生成字节码文件...
  • wxgxxzj
  • wxgxxzj
  • 2015年06月04日 20:30
  • 202

Java反射分析对象的Fields

package chapter05.ObjectAnalyzer; import java.lang.reflect.AccessibleObject; import java.lang.refle...
  • bh1990
  • bh1990
  • 2014年05月21日 19:33
  • 600

Java.lang.Object类中应用在多线程的几种方法介绍

Java.lang.Object类是所有类的基类,它里面的方法都是非常重要的,每一个方法我们都要知道它的用法,现在我们主要来介绍它们中应用在多线程的几种方法。 1. wait() public...
  • xukunhui2
  • xukunhui2
  • 2013年01月28日 11:05
  • 1337
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java.lang.Object 类
举报原因:
原因补充:

(最多只允许输入30个字)