导图社区 Java中的Object类
这是一篇关于Java中的Object类的思维导图,主要内容包括:finalize方法,hashCode()方法,getClass方法,equals方法,类构造器,方法,属于,全称,地位。
这是一篇关于常见词根词缀的思维导图,主要内容包括:词缀,根词。通过添加不同的词缀,词根可以构成具有不同词性和意义的单词。
这是一篇关于数据链路层中的协议的思维导图,主要内容包括:PPP协议,ALOHA协议,CSMA/CD协议,CSMA/CA协议,令牌传递协议,停止等待协议,后退N帧协议,选择重传协议。
这是一篇关于TCP协议的可靠传输机制的思维导图,主要内容包括:拥塞控制,流量控制,连接管理,超时重传,确认应答,序列号,校验和。
社区模板帮助中心,点此进入>>
python思维导图
Java日常技术
java中io流图解
Java继承与多态
职场必看!Java编程思想思维导图
python留言网站
Python入门
python基础知识点简单总结
J2EE复习大纲
《C语言程序设计》思维导图
Java中的Object类
地位
JDK中所有类的基类
当一个类没有直接默认继承某个类时,则默认继承Object类
所有类都默认继承Object
Object类中所有共有方法也将被任何类所继承
全称
java.lang.Object
属于
java.lang包
此包下的所有类在使用时无须手动导入
系统在程序编译期间自动导入
方法
registerNatives()
getClass()
hashCode()
equals(Object) boolean
clone()
toString()
notify()
notifyAll()
wait(long)
wait(long,int)
类构造器
创建Java对象的途径之一
通过new关键字调用构造器
完成对象的实例化
通过构造器对对象进行相应的初始化
一个类必须要有一个构造器
如果没有显示声明
那么系统会默认创建一个无参构造器
equals方法
用来比较两个对象是否相等
==
用于比较基本类型的值是否相同
比较两个对象的引用是否相等
使用原则
自反性
对于任何非空引用值x,x.equals(x)都应返回true
对称性
对于任何非空引用值x和y,当且仅当y.equals(x)返回true时,x.equals(y)才返回true
传递性
对于任何非空引用值x、y和z,如果x。equals(y)返回true,并且y.equals(z)返回true,那么x.equals(z)返回true
一致性
对于任何非空引用值x和y,多次调用x.equals(y)始终返回true或始终返回false。前提是对象上equals比较中所用的信息没有被修改
getClass方法
作用
返回对象的运行时类
class和getClass()有什么区别呢?
class是一个类的属性,能获取该类编译时的类对象
getClass()是一个类的方法
它获取该类运行时的类对象
hashCode()方法
哈希算法
散列算法
是将数据依据特定算法产生的结果直接指定到一个地址上
推论
若两个对象相等,它们的hashCode一定相同
若两个对象不相等,其hashCode有可能相同
若hashCode相同的两个对象,则不一定相等
若hashCode不相同的两个对象,则一定不相等
编写
不同对象的hash码应该尽量不同
避免hash冲突
算法获得的元素要尽量均匀分布
int类型
占用四个字节
避免溢出
比较对象的流程
要放入集合中的对象
是否与集合中任意一个对象的hashCode值相等
否
放入对象
是
是否与集合中任意一个对象equals相等
舍弃
finalize方法
用于垃圾回收
由JVM自动调用