javaSE复习(三)——Object类和String类

文章介绍了Java中的Object类,它是所有类的父类,提供了toString(),equals()和hashcode()等方法。Object的toString()用于对象内容转字符串,equals()比较对象内容,而hashcode()计算对象的哈希值。文章还讨论了String类,强调了创建字符串的方法以及这两个方法在String类中的重要性,通常需要子类根据需求重写这些方法。
摘要由CSDN通过智能技术生成

目录

一、Object类

1.前言

2.概念

3.object类中的多种方法

 3.1 toString()方法

3.2 equals()方法

 3.3 hashcode()

 二、String类

1.前言

2.创建字符串的方法


一、Object类

1.前言

当我们创建一个子类继承自一个父类时,子类的构造方法中必须首先初始化父类(即使用super()关键字)。

 在上面的代码中我们发现Date并没有继承自任何一个类,为什么在构造方法中使用super()时却没有报错呢?实际上Date继承了一个父类——Object类。

2.概念

object类是java中的root类,所有的类都有继承该类,所有类的对象都要使用Object引用。Object是最底层的基类。

3.object类中的多种方法

object类中也提供了多种定义好的方法,我们需要了解这三个。像wait()、notify()、这样的方法主要是在多线程管理线程时使用。

 3.1 toString()方法

toString()方法主要是将对象中的内容转化为字符串输出,打印对象中的内容。

 直接使用Object类中定义好的方法,打印结果如下:

 一般来说,这样打印并不能实现我们的预期。如果我们要打印当前的时间,就需要将toString方法中的内容修改。像下面这样就符合我们的预期了。

toString()方法使用时,一般都需要子类重写方法的内容,实现自己想要实现的功能。

3.2 equals()方法

“==”是我们常用的判断两个对象是否相等,但是在不同情况下使用==的情况也是不同的。

在内置类型中使用==比较的是对象的内容;在引用类型中使用==比较的是地址。

 

 但是Object类中定义的原始的equals方法也不一定会满足我们的需求。如果我们在引用类型中需要比较对象的值是否相等,在内置类型中想要知道地址是否相等,就需要重写equals方法。

下面的方法是实现引用类型中比较内容:

 3.3 hashcode()

hashcode是利用哈希函数计算出在哈希表中的位置。它属于native本地方法,底层是由C/C++实现的。(JDK8 的默认hashCode的计算方法是通过和当前线程有关的一个随机数+三个确定值,运用Marsaglia's xorshift scheme随机数算法得到的一个随机数。)所以判断两个对象的hashcode是否相等的核心就是两个对象是否指向一个地址。

 

 当两个对象中的内容相同时,我们还是期望能让hashcode的值相等。就需要重写hashcode()方法。用两个对象中的成员去计算哈希码,对于内容相同的对象结果一定是相同的。

 

 二、String类

1.前言

在C语言中,字符串不是数据类型,所以使用很不方便。在java中提供了字符串的很多操作方法,有了字符串类型。

2.创建字符串的方法

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LAKURRAA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值