1.概述
Object是所有类的祖类,其中所有的方法其他类都有
2.equals()方法
public boolean eauqls(Object obj){
return this == obj;
}
**设计目的:**比较两个对象是否相等,是否为同一个对象
**注意:**Object中的equals方法,默认比较内存地址
==和equals的区别
==比较基本类型,比较值的大小,而比较引用类型,比较的是内存地址
equals可以根据需求进行重写,做到自定义比较(如果没有重写,那么和==没有区别)
3.finalize
JVM四大特性:跨平台,面向对象,多线程,自动垃圾回收
自动垃圾回收
finalize
1.每个对象都有
2.不需要程序员调用,有系统自动调用
3.垃圾:没有更多引用指向该对象的时候,该对象被视为垃圾回收数据
堆内存有这个对象,但是谁也找不到它,他就是垃圾,此时就等待被回收
4.对象被回收之前,会自动帮我们调用该对象的finalize方法
finalize方法,并没有垃圾回收的功能,只是回收之前,自动执行而已
所以,我们手动调用 该方法是没有任何价值的
4.toString()方法
返回该对象的字符串表示形式,可以通过这个方法,把每个对象的数据输出出来,让外界知道
输出一个引用类型的时候,底层会自动调用该对象的toString方法
5.hashCode()方法
设计目的:给每个对象生成一个唯一的标识符
同一个对象生成多次,值一定相同
不同对象生成的值,也可可能相同,又叫hash冲突
覆写hashCode的时候,还需要考虑什么?
覆写equals,因为只是equals和hashCode一个,是没有办法在散列表中表示唯一性的
hash算法: 是一种安全的加密算法,把不一定长的值,改为定长的值,不能保证唯一性
直接寻址法
数字分析法
除留余数法
随机数法
折叠法