clone()
1、 自定义的类使用clone方法,当前类必须要实现 Cloneable接口
如果不实现此接口,就会抛出异常java.lang.CloneNotSupprtedException
2、因为object类的clone是protected修饰的,要重写此方法
才能在不同包中访问,把访问修饰符定义为public
3、Cloneable接口中没有方法,是一个标识性的接口,
实际上针对Object类的clone方法的实现
4、浅拷贝:引用变量拷贝的是地址,所有克隆的对象改变了对象的属性
原对象的属性也发生改变
5、深拷贝:引用变量拷贝一份对象,克隆对象的属性改变,原对象的属性不发生变化
toString()
1、返回对象的字符串表示形式
2、包名.类名@hashCode(内存地址)
3、当打印对象时,默认调用
4、果不想使用object类toString方法,可以重写此方法
equals()
如果想表示对象的内容相同,返回true,则重写此方法。
==判断两个变量或者实例是否指向同一个内存空间,对内存地址进行比较,引用是否相同。
equals()判断两个变量或实例所指向的内存空间的值是否相同,对字符串的内容进行比较,值是否相同。
hashCode()
返回一个hash Code码,Integer,是与内存地址有关的hash算法
如果equals()方法返回true,hashCode相同,则重写hashCode