栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Object

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Object

Object

文章目录
  • Object
    • 常见方法
    • toString()
    • equals()
    • finalize()的用途
    • 总结

常见方法
方法作用
protected object clone()负责对象兑隆的
int hashCode ()获取对象哈希值的一个方法
boolean equals (object obj)判断两个对象是否相等
string tostring ()将对象转换成字符串形式
protected void finalize()垃圾回收器负责调用的方法
toString()

String类已经重写toString方法

以后所有类的toString()方法都是需要重写的。

重写规则

越简单越明了就好。

	System.out.println(引用); //这里会自动调用“引用”的toString()的方法
equals()

String类已经重写了equals方法

以后所有的类的equals方法也要进行重写,因为Object中的equals方法比较的是两个对象的内存地址,我们应该比较内容,所以需要进行重写。

重写规则

自己定,主要看是什么和什么相等时表示两个对象相等。

finalize()的用途
  1. ​ 如果对象不是通过new关键字创建的,那么垃圾回收器是无法回收该对象的。因此允许在类中实现一个finalize()方法。
    ​ 它的工作原理"假定"是这样的:当垃圾回收器准备回收对象的内存时,首先会调用其 finalize() 方法,并在下一轮的垃圾回收动作发生时,才会真正回收对象占用的内存。
    ​ 无论对象是如何创建的,垃圾回收器都会负责释放对象所占用的所有内存。这就将对 finalize() 的需求限制到一种特殊情况,即通过某种创建对象方式之外的方式为对象分配了存储空间。
    ​ 这种情况主要发生在使用"本地方法"的情况下,本地方法是一种用 Java 语言调用非 Java 语言代码的形式。(在非 Java 代码中,也许会调用 C 的 malloc() 函数系列来分配存储空间,而且除非调用 free() 函数,不然存储空间永远得不到释放,造成内存泄露。但是,free() 是 C 和 C++ 中的函数,所以你需要在 finalize() 方法里用本地方法调用它。)
  2. finalize()方法不是专门清理使用的,因此需要我们自己创建一些清理方法,并进行调用。例如:将打开的文件关闭,将打开的流关闭等。这样这个对象就会处于某种状态,这种状态下它占用的内存可以被安全地释放掉。
  3. finalize()的奇特用法—对象终结条件验证—它可以对上述的”某种状态“进行检验,即程序中存在没有被适当清理的部分。它可以发现它们,从而找到问题所在。
  4. java的垃圾回收器是自适应的。Java虚拟机将内存分块。
    有了块,垃圾回收器就可以把对象复制到废弃的块。每个块都有年代数来记录自己是否存活。通常,如果块在某处被引用,其年代数加 1,垃圾回收器会对上次回收动作之后新分配的块进行整理。这对处理大量短命的临时对象很有帮助。垃圾回收器会定期进行完整的清理动作——大型对象仍然不会复制(只是年代数会增加),含有小型对象的那些块则被复制并整理。Java 虚拟机会监视,如果所有对象都很稳定,垃圾回收的效率降低的话,就切换到"标记-清扫"方式。同样,Java 虚拟机会跟踪"标记-清扫"的效果,如果堆空间出现很多碎片,就会切换回"停止-复制"方式。这就是"自适应"的由来,你可以给它个啰嗦的称呼:"自适应的、分代的、停止-复制、标记-清扫"式的垃圾回收器。
  5. JIT技术(即时编译技术),一般采用惰性评估的方式。即时编译器只有在必要的时候才编译代码。这样,从未被执行的代码也许就压根不会被 JIT 编译。代码每被执行一次就优化一些,所以执行的次数越多,它的速度就越快。
总结
  • java中基本数据类型比较是否相等,使用 ==
  • java中所有的引用数据类型统一使用equals方法来判断是否相等
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/328735.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号