1.Object 类:位于 java.lang 包中的类(java.lang包中的内容自动导入);
2.Object 是每个类的父类,直接父类或者是间接的父类;
3.Object 类型的引用可以存储任意类型的对象;
4.Ovject 类中的方法是每个类都默认的功能方法。
1. getclass():被 final 修饰,允许子类继承,不允许覆盖
a.作用:获取引用中实际存储的对象类型。
b.实际开发应用:通常用于判断两个引用中存储的实际对象类型是否一致,
一致-true;不一致-false
c.案例:
d. instanceof:引用名 instanceof 类型,用于判断前面引用中存储的实际对象类型是否为后面类型的一种。
2.int hashCode():没有被 final 修饰,允许覆盖
a. 作用:返回对象的哈希码值。
b. Object 类中 hashCode 获取的哈希码值:将对象在内存中十六进制的地址转换为十进制的结果。
c. 注意:由于不同对象在内存中地址不同,所以不同的对象会有不同的哈希码值。
3. String toString():没有被 final 修饰,允许覆盖
a.作用:返回对象的字符串表现形式。
b.实际开发:实际开发中通常需要覆盖 toString 方法,将所有的属性值拼接为一个字符串类型
的结果作为返回值进行返回。
c.案例
d. 注意区分 toString 方法和 get 方法
toString 方法:为了方便开发人员做对象信息展示,将所有的属性值拼接为一个字符串类
型的结果作为返回值进行返回。
get 方法:获取单个属性值,而且不改变属性的数据类型。
4.boolean equals(Object obj):没有被 final 修饰,允许覆盖
a.作用:判断两个对象的内容是否相同,相同- true;不相同-false
b.== 的应用:
I. 如果==两端是基本数据类型,比较数值是否相等
II. 如果==两端是引用类型,比较引用中存储的地址是否相同
c.== 在实际开发中作用:通常利用==判断两个引用是否指向同一个对象,true代表存储同一
个对象,false代表存储不同的对象。
d.Object 类中提供的 equals 方法的源码如下:
结论:Object 类中 equals 比较对象的地址,如果想比较对象的内容是否相等,需要覆盖 equals 方法
e . equals 方法覆盖的步骤:
5. void finalize():没有被 final 修饰,允许覆盖 [ 性能调优 ]
a. 作用:垃圾回收器进行回收垃圾对象时,jvm 自动调用方法
b. 垃圾对象:如果没有任何引用指向的对象。
new Student();
c. 垃圾回收器:简称 GC/gc,jvm用于回收垃圾对象。
d. 回收垃圾对象的目的:清除垃圾对象,提高空间的利用率。
e. 垃圾回收器回收垃圾对象的时机:
I. 自动回收机制:当 jvm 内存被占用满时,jvm 启动 gc 对垃圾对象进行清理回收,gc在
进行垃圾对象回收时,jvm 自动调用 finalize 方法。
II. 手动回收机制:利用 System.gc() 通知垃圾回收器进行回收垃圾对象,如果 GC 空闲-进行垃圾回收;如果 GC 繁忙-暂不回收。