Object 类
equals 方法、==
1、equals 方法
(1)Object 类的方法,底层是比较操作符 ==
public boolean equals(Object obj) {
return (this == obj);
}
(2)默认判断引用地址是否相等,即判断引用的是否为同一对象
(3)子类往往重写该方法,用于判断内容是否相等
Integer 类
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
String 类
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
2、==
(1)比较运算符
(2)基本类型:判断值是否相等
(3)引用类型:判断引用地址是否相等,即判断引用的是否为同一对象
hashCode 方法
public int hashCode()
1、提高具有哈希结构的容器的效率
2、若两个引用指向同一对象,哈希值一定相同;若两个引用指向不同对象,哈希值不同,但可能存在哈希碰撞
3、哈希值由真实地址转换而来,但哈希值不能等价于地址
4、在集合中,若有需要,hashCode 方法会被重写
toString 方法
1、默认返回:全类名 + @ + 十六进制的哈希值
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
(1)得到类的全类名(包名 + 类名)
getClass().getName()
(2)获取对象的哈希值,并将其转换为十六进制的字符串
Integer.toHexString(hashCode())
2、直接输出一个对象时,toString 方法会被隐式默认调用
3、子类往往重写该方法,以字符串形式返回对象属性
finalize 方法
1、当对象被回收,系统自动调用该对象的 finalize 方法
2、当某个对象无任何引用时,JVM 使用垃圾回收机制来销毁该对象,在销毁对象前,会先调用 fainalize 方法
3、系统有自己的 GC 算法,决定垃圾回收机制的调用时机,一般可以通过 System.gc() 主动触发垃圾回收机制,调用后不一定立刻执行
4、子类可以重写该方法,做释放资源的操作
5、开发中不常用
getClass 方法
public final Class<?> getClass()
1、返回此对象的运行时类的 Class 对象
2、返回的 Class 对象是被表示类的 static synchronized 方法锁定的对象
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战