基本数据类型的equals()方法与 == 号(扩展方法传参)

先说结论:

1、== 永远是用来比较内存中的地址的。

2、基本类型 与包装类型 使用 == 比较,包装类型会拆箱

3、两个包装类型不能使用 == 比较

4、两个包装类型使用equals比较,先比较类型,再比较值

5、包装类型与基本类型使用equals比较,先将基本类型装箱再比较


论点4验证:

论点2验证:

可以看到,对于Long l =129L; 先进行装箱,对于l ==i1,因为i1是基本类型,对l进行拆箱。

论点5验证:

论点3验证:

论点1验证:

常量(基本数据类型和字符串类型),了解到java虚拟机可知道,会存储在常量池,且基本数据类型包装类都是final类型,不可变更。直接使用 == 其实也可以理解为比较常量的地址。

对于基本数据类型在传参时,其实也是传句柄(handle),但因为传的是final类型,故赋值时,不会改变之前的值。

你可能感兴趣的:(基本数据类型的equals()方法与 == 号(扩展方法传参))