Object类
- 超类、基类,所有类的直接或间接父类,位于继承树的顶端
getClass()方法
返回Class的一个对象(类全名,字节码对象)
搭配 newInstance()可实例化一个对象
Class cc = Student.getClass();
Object o = cc.newInstance();
toString()方法
获得字符串表达式
默认格式:包名+类名+@+哈希码的十六进制转换,这种方式一般没用,建议在对象类中重写,把成员变量转换成字符串表达式
class MyClass{
String name;
int age;
public MyClass() {
}
public MyClass(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "MyClass{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
MyClass myClass = (MyClass) o;
return age == myClass.age &&
Objects.equals(name, myClass.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
equals()方法
比较对象的相等性,默认为this == obj,比较地址
相等规则:
- 判断类型是否相等
- 判断obj是否为null
- 比较两个引用指向的时机对象类型
- 强制类型转换
- 依次比较各个属性值是否相等(String重写了equals(),比较字符串内容)
finalize()方法
- 当前对象被判定为垃圾对象时,有JVM自动调用此方法,用以标记垃圾对象,进入回收队列
- 垃圾对象:没有有效的引用指向此对象时,为垃圾对象
- 垃圾回收:由GC销毁垃圾对象,释放数据存储空间
- 自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象
- 手动回收机制:使用System.gc();通知JVM执行垃圾回收