toString和equals

本文介绍了Java中equals方法为何需要重写,强调使用equals而非'=='来比较对象内容。同时讲解了String类的toString和hashCode方法。还探讨了对象克隆、垃圾回收机制,包括finalize方法的执行时机。总结了Java中基本类型与引用类型的数据比较规则,并提及静态代码块和对象生命周期的不同阶段。
摘要由CSDN通过智能技术生成

equals

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

重写规则:自己定,主要看是什么和什么相等时表示两个对象相等

基本数据类型比较实用:==

对象和对象比较:调用equals方法

String类是SUN编写的,所以String类的equals方法重写了

以后判断两个字符串是否相等,最好不要使用==,要调用字符串对象的equals方法

String类已经重写了equals方法,比较两个字符串不能使用==,必须使用equals。equals是通用的。

String类已经重写了toString方法。

结论:

Java中什么类型的数据可以使用“==”判断

​ Java中基本数据类型比较是否相等,使用==

Java中什么类型的数据需要使用equals判断

​ Java中所有的引用数据类型统一使用equals方法来判断是否相等

protected Object clone() //负责对象克隆

int hashCode() //获取对象哈希值的一个方法

boolean equals(Object obj)//判断两个对象是否相等

String toString //将对象转换成字符串形式

protect void finalize() // 垃圾回收器负责调用的方法

toString()方法

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

重写规则越简单越明了就好

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

String类是SUN写的,toString方法已经重写了。

finalize()方法

1、在Object类中的源代码:

​ protected void finalize() throws Throwable{ }

2、finalize()方法只有一个方法体,里面没有代码而且这个方法是protected修饰的

3、这个方法不需要程序员手动调用,JVM的垃圾回收器负责调用这个方法。

4、finalize()方法的执行时机:

​ 当一个java对象即将被垃圾回收器回收的时候,垃圾回收器负责调用finalize()方法

5、finalize()方法实际上是SUN公司为java程序员准备的一个时机,垃圾销毁时机。

​ 如果希望对象销毁时机执行一段代码的话,这段代码要写到finalize()方法当中

6、静态代码块的作用是什么?

​ static{

​ …

​ }

静态代码块在类加载时刻执行,并且只执行一次

这是一个SUN准备的类加载时机

finalize()方法同样也是SUN为程序员准备的一个时机

这个时机是垃圾回收时机。

7、提示:

java中的垃圾回收器不是轻易启动的,垃圾太少,或者时间没到,种种条件下,有可能启动,也有可能不启动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值