抽象类 object类

抽象类 object类,第1张

抽象类 object类

我们理解的抽象就是有某些特征抽象出来,就是提取特征功能,但功能自己没办法计算

抽象类:父类只定义有那些功能,但是不负责去实现这些功能,子类负责实现这功能,比如说形状类定义周长,面积,父类不负责去实现这些功能,只负责限定有这个功能,子类继承父类这个功能,就必须去实现这个功能。

object是所有类的父类

重要面试点

object类的九个方法

equals:两个句柄引用的地址是否相同,true 代表同一个地址,同一个引用对象

getclass:是反射获取类信息

hashCode:获取对象的散列码(散列代表无规律的分布,但相对均匀,大体上分布比较均匀通常用数组来实现散列,数组里面有规律的放数据)

notify:唤醒线程 也就是让线程从等待状态进入就绪状态

notifyAll:唤醒全部线程

toString:默认输出返回对象的类信息,以及对象地址

wait{}:让线程进入等待状态,也就是未就绪状态

 Object类在JAVA里面是一个比较特殊的类,object默认继承所有方法

面试点:equals 的两个意思是什么

重写equals和未重写equals

两个不同对象的Hashcode一定不相等? 错误

HashCode不同 那么对象一定不等 也就是是两个不同的对象?正确

散列码( hash code ) 是由对象导出的一个整型值。散列码是没有规律的。如果 x 和 y 是两个不同的对象, x.hashCode( ) 与 y.hashCode( ) 基本上不会相同。

重写equals注意什么?

重写equals一定要重写hashcode

为什么?因为hashmap里面需要equals和hashcode 协同

equals判断两个对象值是否相等,然后由根据hashcode存储

问题:图5-2为什么s和t散列码相等

字符串重写equals,一定重写hashcode,重写equals相等了,所以重写hashcode也相等了

 

new Double().hashcode 这种定义方法是可以的,new完之后就回收了,不会再次被使用

也就是说堆里面对象如果没有任何地方记录它,就直接被回收了,比较节省内存

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5709959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存