Java基础(15) - Object类

一、Object类9大方法是哪些

1、Clone方法

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

Java里参数传递,除了8种基本类型是值传递。其他类对象都是引用传递。

 

2、getClass方法

final方法,获得运行时类型。

 

3、toString方法

该方法用得比较多,一般子类都有覆盖。

 

4、finalize方法

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

 

5、equals方法

 

6、hashCode方法

该方法用于哈希查找,可减少查找中使用equals的次数,重写了equals方法一般都要重写hashCode方法。

对象不重写hashCode方法,在集合框架中,判断2个对象内容是否相当,如没重写hashCode,默认使用内存地址,因此会存多个。

 

7、wait方法

 

8、notify方法

 

9、notifyAll方法

 

二、Object为什么设计9大方法

equals,hashCode,clone(对象类型的变量只是个引用,与实际内容不相干)。

toString(任何语言用的最多的都是字符串操作,能将object转化未字符串当然也就势在必行了)。

wait,notify*(java是第一个直接支持多线程的高级语言,这些方法是不是必不可少,当然并不是所有的java程序都需要显式使用多线程)

finalize(java也是第一个支持垃圾回收机智的高级语言,这个方法也就理所当然了)

getClass(所有的java Object都有类与之对应)

 

三、为什么Object不设计成抽象的

待完善 ~

 

参考:https://www.jianshu.com/p/a509edc4fc08

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值