Java中的object类中toString的详解

本文探讨了Java中Object类的作用,如何在无显式父类时默认继承,以及toString方法的工作原理,重点介绍了哈希值在内存地址表示中的角色和用途。
摘要由CSDN通过智能技术生成

object类是所有类的父类,储存在java.lang包中.在类没有明确父类的时候,会默认继承object类.

首先,为什么会出现object类呢?

首先,可以同意一些常用的方法名,比如toString,wait等方法,使不同对象可以同意,互转.

其次,对父类的逻辑处理统一,不需要根据有没有父类进行讨论.

那么在Java中,是如何保证在一个类没有父类的时候默认继承object类呢?

最常见的有两种,一种在编译的时间默认继承,何有就是由虚拟机添加,

Java用的就是在编译的时候添加object类,

object类中有许多方法.

首先是toString方法,


public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

这是toString方法的原码,toString方法返回对象的包名,类名和哈希值.那么哈希值是什么呢?

哈希值是一种经过哈希算法得出的特定值,用来记录对象的地址.但与真正物理意义上的地址不同,哈希值只是逻辑上的地址.比如在c语言上每个变量的地址是固定的,但在Java中,哈希值可以被更改,使其相同,因为哈希值是jvm通过算法构造的地址.

那么为什么要使用哈希值来记录地址呢?

哈希值的作用之一,就是用来查重.

由于不同的对象有不同的哈希值,可以用来检测两对象是否相同.也有气矿会出现哈希冲突,这里就不细讲了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值