objec类中方法介绍

时间:2023-03-09 01:16:09
objec类中方法介绍

java.lang.object,是Java中所有类(当然Object类除外)的终极父类,其中数组也继承了Object类,但是接口是不继承Object类的。

Object中方法如下(11个):

  Class<> getClass();

  boolean equals(Object obj);
int hashCode(); protected Object clone();
protected void finalize(); String toString(); void wait();
void wait(long timeout);
void wait(long timeout, int nanos); void notify();
void notifyAll();

1、protected Object clone();

作用:创建并返回此对象的一个副本。

注意

- 要执行clone()方法,对象所属的类必须实现Cloneable接口,否则会抛出CloneNotSupportedException。

- 所有的数组都被视为实现了Cloneable接口;

- Object类本身不实现Cloneable接口;

- 谨记返回的是Object类型,所以有时候可能需要强制类型转换。

如何工作

Object将clone()作为一个本地方法来实现,代码是存放在本地代码库的。当代码执行时,将会检查调用对象的类(或者父类)是否实现了java.lang.Cloneable接口,如果没有实现,则会抛出异常。如果实现,clone()则会创建一个新的对象,并将原来的对象的内容复制到新对象中,最后返回这个新对象的引用。

浅克隆:也叫做浅拷贝,仅仅复制对象本身的成员变量,对于该对象引用变量中引用的对象,不创建副本,只是复制引用变量,指向同一个对象。这样你对副本进行修改的时候,就可能影响到源本。如果一个对象中的成员变量都是基本类型,或者其引用的对象都是不可改变的,使用浅克隆效果很好。

深克隆:也叫做深复制,不仅会复制此时对象的成员变量,对于该对象引用的对象,深克隆也会对其创建副本。

2、boolean equals(Object obj);