这篇文章主要介绍“Java Object类怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java Object类怎么使用”文章能帮助大家解决问题。1.equals方法==
这篇文章主要介绍“Java Object类怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java Object类怎么使用”文章能帮助大家解决问题。
比较运算符,即可以判断基本类型又可以判断引用类型
如果判断基本类型,则判断值是否相等
如果判断引用类型,则判断地址是否相等,即判断是否为同一个对象
是object类的一个方法,只能判断引用类型
object - equals源码:
public boolean equals(Object obj) { return (this == obj);}
可以清晰的看到,object类里的equals方法是判断对象的地址是否相同(是不是同一个对象)
但是,其他数据类型类会重写equals方法,比如String类的重写:(判断两个字符串的值是否相等)
public boolean equals(Object anObject) { if (this == anObject) { return true; } return (anObject instanceof String aString) && (!COMPACT_STRINGS || this.coder == aString.coder) && StringLatin1.equals(value, aString.value);}
实例:
String str1 = new String("hello");String str2 = new String("hello");System.out.println(str1 == str2); // falseSystem.out.println(str1.equals(str2)); // true
提高具有哈希结构的容器的效率
两个引用如果指向同一个对象,哈希值肯定(不冲突的情况下)一样,反之不一样
哈希值根据地址而来但并非地址
演示:
// hashCodeA a = new A();A a1 = new A();A a2 = a;System.out.println(a.hashCode());System.out.println(a1.hashCode());System.out.println(a2.hashCode());------------------------------
输出:
1324119927
990368553
1324119927
返回该对象的字符串表示
源码:
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode());}
实例:
// toStringA a3 = new A("dahe",25,"安全服务工程师");System.out.println(a3.toString());
输出:
classes.A@41629346
包名.类名@十六进制的hashCode
现在我们在类中重写一下toString方法(模板):
@Overridepublic String toString() { return "A{" + "name='" + name + '\'' + ", age=" + age + ", job='" + job + '\'' + '}';}
再次运行上面的代码,现在输出如下:
A{name='dahe', age=25, job='安全服务工程师'}
另外,当我们直接输出对象时,会默认直接调用toString方法:
System.out.println(a3);
输出:
A{name='dahe', age=25, job='安全服务工程师'}
当对象被回收时,系统自动调用该对象的finalize方法,子类可以重写该方法,做一些释放资源的操作
注意:在jdk18中。finalize被弃用了。它虽然可以帮助我们主动释放系统底层资源,但是说实话,没用过,Java 是自动管理内存的,使用它反而会导致潜在的系统安全风险,没帮助不说反而是负担,所以计划移除了。
实例:
// finalizeA a4 = new A("dh",33,"架构师");a4 = null; // 这是a4成为了垃圾,垃圾回收器就会回收对象// 在销毁对象之前,会调用对象的finalize方法// 程序员就可以在这个方法中写入自己的业务,释放资源
重写finalize方法:
@Overrideprotected void finalize() throws Throwable { System.out.println("我们销毁对象");}
除此之外,还可以主动运行垃圾回收器:
System.GC(); // 主动调用垃圾回收器
关于“Java Object类怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。
--结束END--
本文标题: Java Object类怎么使用
本文链接: https://lsjlt.com/news/343453.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0