toString与hashcode与finaliza

28 篇文章 0 订阅
24 篇文章 0 订阅
本文探讨了Java中对象的三个核心概念:toString方法通常用于显示对象属性,子类常重写以提供更多信息;hashCode用于优化哈希结构的容器,确保相等对象返回相同哈希值;finalize方法在对象回收前提供最后一次操作机会,但不保证垃圾回收效率。理解这些概念对于优化代码和内存管理至关重要。
摘要由CSDN通过智能技术生成

这几个东西都挺玄学的

首先来说说tostring

默认返回:全类名 +@+ 哈希值的十六进制,【查看 Object toString 方法】
子类往往重写 toString 方法,用于返回对象的属性信息
有专门的快捷键会使用就行了 alt+insert;(也没什么好演示的)
再来时hashcode
1) 提高具有哈希结构的容器的效率!
2) 两个引用,如果指向的是同一个对象,则哈希值肯定是一样的!
3) 两个引用,如果指向的是不同对象,则哈希值是不一样的
4) 哈希值主要根据地址号来的!, 不能完全将哈希值等价于地址。

hashCode 的常规协定是:

  • 在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。
  • 如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。
  • 如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法 要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。

实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧。)

最后是finaliza

这东西在对象没有任何引用时(可能会有垃圾回收的功能,释放内存空间,但不是有就回收效率低有算法的)

我们可以可以重写这个方法 来在垃圾回收之前做点什么,不常用这东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值