一:Object类
- java.lang.Object是java所有类的父类,所有类默认继承Object
- Object的第一类方法:线程相关
阻塞线程(超时返回和不带超时):wait(_),wait(long timeout),wait(long timeout,int nanos)
唤醒线程: notify(),nitifyAll() - 第二类方法equals和hashCode
这2个方法一般会一起使用,一般重写equals必须重写hashCode方法(例如:String类),equals返回true时,hashCode相同,反之不一定 - toString
- finalize:释放资源
- getClass返回对象的Class类型:在反射中应用比较多
- Clone方法:对象克隆
二:对象克隆学习
一般来说2种方式:重写Object的clone方法和java的序列化
1:重写clone
类实现Cloneable接口
重写clone方法,内部调用super.clone
注意:此方法是浅层次克隆,只克隆该对象自身,对象内部引用类型的对象无法克隆,如果进行深克隆,需要所有相关对象实现clone,并依次调用,但类型层次太多时,使用起来不方便,可以使用序列化方式
2:序列化方法
实现serializable接口,通过流的方式序列化到磁盘,在反序列化就生成了新的对象(所有类实现serializable接口)