美文网首页
基本数据类型的equals()方法与 == 号(扩展方法传参)

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

作者: Bardon_X | 来源:发表于2019-04-11 11:17 被阅读0次

    先说结论:

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

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

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

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

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

    论点4验证:

    论点2验证:

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

    论点5验证:

    论点3验证:

    论点1验证:

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

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/ehiziqtx.html