public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
源码上toString()方法的默认实现:
类名@对象的内存地址转换为十六进制的形式
public boolean equals(Object obj) {
return (this == obj);
}
protected void finalize() throws Throwable {}
finalize()方法只有一个方法体,里面没有代码,并且这个方法由protected修饰
此方法不需要程序员手动调用,JVM的垃圾回收器负责调用这个方法,finalize()只需要重写
public native int hashCode();
这个方法不是抽象方法,带有native关键字,底层调用C++程序
public class Test01 {
public static void main(String[] args) {
Object o = new Object();
int hashCodeValue = o.hashCode();
// 对象内存地址经过哈希算法转换的一个数字,可以等同看做内存地址
System.out.println(hashCodeValue); // 366712642
MyClass mc = new MyClass();
int hashCodeValue2 = mc.hashCode();
System.out.println(hashCodeValue2); // 1829164700
MyClass mc2 = new MyClass();
System.out.println(mc2.hashCode()); // 2018699554
}
}
class MyClass {
}
浅克隆:拷贝对象时仅仅拷贝对象本身(包括对象中的基本变量),而不拷贝对象包含的引用指向的对象
深克隆:不仅拷贝对象本身,而且拷贝对象包含的引用指向的所有对象(就是把被克隆对象的实例变量中引用数据类型所指向的对象再new一遍)
本文地址:https://blog.csdn.net/LvJzzZ/article/details/107470474
如对本文有疑问, 点击进行留言回复!!
[杭电多校2020]第一场 1004 Distinct Sub-palindromes
Swift -- 将本地生成的UIImage进行持久化保存(存到文件中fileManager.createFile)
网友评论