Object类(Object类是所有类的父类)
-
getClass 方法
final 方法、获取对象的运行时 class 对象,class 对象就是描述对象所属类的对象。这个方法通常是和 Java 反射机制搭配使用的。 -
Object类中的toString()方法
hashCode就是一个对象在内存中的地址
Integer.toHexString()将其转换为十六进制
重写toString()方法就可以得到自己想要的输出
-
clone()方法
返回一个要克隆对象的副本,
克隆后的对象类型与被克隆对象的类型相同
object类中
(protected表示该方法只能被其子类调用)
(native表示该方法不是在该文件中实现,而是在用其他语言(如C和C++)实现的文件中)
用法:只需要在需要clone的对象上实现(implements)Cloneable接口,然后再在类中加上clone方法,在方法中只需要调用super.clone(),根据自己的需要实现即可
public static void main(String[] args) throws CloneNotSupportedException {
ObjectTest obj1 = new ObjectTest();
obj1.name = "zhangsan";
obj1.age = 18;
//使用System.out.println打印一个对象时会自动调用该对象的toString()方法
//该对象的toString方法继承了其父类即Object类的toString()方法,可重写
System.out.println(obj1.hashCode());
System.out.println(obj1.name+":"+obj1.age);
ObjectTest obj2 = obj1.clone();
System.out.println(obj2.hashCode());
System.out.println(obj2.name+":"+obj2.age);
}
@Override
public ObjectTest clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return (ObjectTest)super.clone();
}
}
意义:使用克隆方法可大大减少重复的创建对象的代码
该方法只能实现对象的浅拷贝,即指针的拷贝,两个指针都指向同一个对象的地址
深拷贝是对象的拷贝,即在堆内存中创建一个新的对象
-
finalize()方法,垃圾回收(系统自动)
System.gc(); //手动调用系统中的垃圾回收器
垃圾回收是针对堆内存的 -
equals()方法,计算两个对象的内存地址是否相同,相当于”==”
该方法用于比较两个对象,如果这两个对象引用指向的是同一个对象,那么返回 true,否则返回 false。
一般 equals 和 == 是不一样的,但是在 Object 中两者是一样的。子类一般都要重写这个方法。