NingG +

Java中Class和Object

class与object之间:

class

疑问:几点:

使用Class的几个场景:

常用 3 种方式:

更多解释参考:Retrieving Class Objects

Object

Java中,Object是所有类的父类,可以显式继承Object类,也可以隐式继承Object类。

Object类的方法

Object自带的方法:

clone()方法

一个对象调用clone()方法,要求类必须继承Cloneable接口。

深克隆 vs. 浅克隆

如果对象中有其他对象的引用,使用浅拷贝无法完成对象的整个克隆,因为如果使用浅拷贝,只是对象的引用得到的拷贝,而两个引用是指向了同一个对象,对其中一个修改还是会影响到另外一个对象。这时后我们需要引入深拷贝,深拷贝实现起来也比较简单,只需要对对象中的对象再次进行clone操作。

equals()方法

equals方法,需要满足以下三点:

  1. 自反性:就是说a.equals(a)必须为true。
  2. 对称性:就是说a.equals(b)为true的话,b.equals(a)也必须为true。
  3. 传递性:就是说a.equals(b)为true,并且b.equals(c)为true的话,a.equals(c)也必须为true。

hashCode()方法

重写hashCode()的原则:

参考来源

Top