Day14 Object,类关系
Object:java的根类,所有都需要直接或者间接性的继承object
Objict中的方法是所有累都有的
Objectxxx=new xxx()是可以发生多态的
因为多态的的原因,如果一个方法需要传递数据,并且无法确定数据类型的时候,就可以使用objevt
方法(静态和动态)
Equals:比较基本数据类型的时候计较是大小,但是比较引用类型的时候就比较的是内存地址了
比较对象的时候是比较他们的属性值的而不是比较是不是同一个对象因为没有意义
Object中提供了equals方法专门用来比较对象是否相同,是否为一个对象
设计目的,比较两个对象是否相等
,默认比较地址,需要根据需求进行重写
Tostring:
目的:返回该对象的字符串表达形式
输出一个应用类型的时候,会自动调用该对象的tostring方法,默认的tostring方法,只返回内存地址
比如我们在打印一个对象的时候,展示出对象中的属性信息,就需要写tostring方法
Finalize
Jvm的四大特性
跨平台
面向对象
多线程
自动垃圾回收机制
Finalize是什么
Finalize每个对象都有
不需要程序员手动调用,由系统自动调用
垃圾:没有更多引用指向这个对象的时候,该对象被视为垃圾数据等待被回收
当一个垃圾被回收之前,就会自动调用带对象的finalize方法
所以结合finalize的执行动机,适合一个资源销毁操作
只要是在对象回收前执行的事,都可以放到finalize中
如果我们手动调用了finalize方法,只是一个简单的调用方法,并不会被回收
Hashcode
是把任意长度的输入通过散算变法换成固定长度输出,所以不能确定唯一值。
设计目的:为了给对象生成hash值
用一个对象生成多次hash值,值一定相同,但是对象可能生成相同的hash值,叫做哈希冲突