Java核心基础知识汇总(二)

本文详细介绍了Java中hashCode()、equals()方法与'=='的区别,强调了hashCode在对象比较中的作用以及重写的重要性。同时,讨论了equals()在String类中的特殊实现。此外,还探讨了静态代码块和非静态代码块的执行时机,以及静态引用的使用方式,展示了静态导入的便利性。最后,提到了静态代码块与非静态代码块在对象创建过程中的执行顺序及其影响。
摘要由CSDN通过智能技术生成

1、hashCode 与 equals 和“==”讲解
hashCode():该方法通常
用来将对象的内存地址转换为整数之后返回。hashCode()是Objetc对象里的方法,所以他能快速判断两个对象是否相等,大部分的对象的hashCode对象是不相等的,因为hashCode的值跟内存地址有关,如果我们重写了hashCode方法,导致对象hashCode值相等,再用equals()方法判断是否相等。这样我们就大大减少了 equals 的次数,相应就大大提高了执行速度。

2、hashCode()与 equals():如上所述,hashCode值相等,他们也不一定相等,还需用equals判断。

3、equals与==
==:基本数据类型比较的
是值,引用数据类型比较的是内存地址
equals() :通过 equals() 比较该类的两个对象时,等价于通过d等于号比较这两个对象。String 中的 equals 方法是被重写过的,因为 object 的 equals 方法是比较的对象的内存地址,而 String 的 equals 方法比较的是对象的值。

4、静态代码块
静态代码块在非静态代码块之前执行(静态代码块—非静态代码块—构造方法)。 该类不管创建多少对象,静态代码块只执行一次。如果静态代码块有多个,JVM 将按照它们在类中出现的先后顺序依次执行它们。

5、java中的静态引用
静态引入类的方式:
import static java.lang.Math.*;
可以不加类名直接使用方法,比如说:sqrt(4)
而平常的写法为:Math.sqrt(4)

6、静态代码块和非静态代码块
静态代码块只在第一次new 执行一次,之后不再执行,而非静态代码块在每 new 一次就执行一次。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值