Java学习分享 ---【Object类】三种常用方法的认知

简述 :

Object类是所有java类的根基类,也就意味着所有的java对象都拥有Object类的属性和方法。如果在类的声明中未使用extends关键子指明其父类,则默认继承Object类。

以下两种类的定义的最终效果完全相同

class Person { }

class Person extends Object { }

构造方法:

可以直接实例化 

Object() 

//Object obj = new Object();

 成员方法:

protected Object	clone()创建并返回此对象的副本。
boolean	equals(Object obj)指示一些其他对象是否等于此。
protected void	finalize()当垃圾收集确定不再有对该对象的引用时,垃圾收集器在对象上调用该对象。
类	getClass()返回此 Object的运行时类。
int	hashCode()返回对象的哈希码值。
void	notify()唤醒正在等待对象监视器的单个线程。
void	notifyAll()唤醒正在等待对象监视器的所有线程。
String	toString()返回对象的字符串表示形式。
void	wait()导致当前线程等待,直到另一个线程调用该对象的 notify()方法或 notifyAll()方法。
void	wait(long timeout)导致当前线程等待,直到另一个线程调用 notify()方法或该对象的 notifyAll()方法,或者指定的时间已过。
void	wait(long timeout, int nanos)导致当前线程等待,直到另一个线程调用该对象的 notify()方法或 notifyAll()方法,或者某些其他线程中断当前线程,或一定量的实时时间。

方法的作用 :

1. clone()

保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。

2. getClass()

final方法,返回Class类型的对象,反射来获取对象。

3. toString()

该方法用得比较多,一般子类都有覆盖,来获取对象的信息。

4. finalize()

该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。

5. equals()

比较对象的内容是否相等

6. hashCode()

该方法用于哈希查找,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。

7. wait()

wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。

调用该方法后当前线程进入睡眠状态,直到以下事件发生。

其他线程调用了该对象的notify方法。
其他线程调用了该对象的notifyAll方法。
其他线程调用了interrupt中断该线程。
时间间隔到了。
此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。

8. notify()

该方法唤醒在该对象上等待的某个线程。

9. notifyAll()

该方法唤醒在该对象上等待的所有线程。

常用的成员方法

String toString();

返回对象的字符串表示形式。
//在打印的时候调用方法
    官方:
返回对象的字符串表示形式。 一般来说, `toString`方法返回一个“textually代表”这个对象的字符串。 结果应该是一个简明扼要的表达,容易让人阅读。 
    建议所有子类覆盖此方法。
该`toString`类方法`Object`返回一个由其中的对象是一个实例,该符号字符`的类的名称的字符串`@` ”和对象的哈希码(内存地址)的无符号的十六进制表示。 换句话说,这个方法返回一个等于下列值的字符串:

你可能感兴趣的:(Java基础,java,学习,开发语言)