美文网首页
java基本数据类型和包装类

java基本数据类型和包装类

作者: 勤任风 | 来源:发表于2020-01-02 20:34 被阅读0次

    【两者之间的区别】

    1. 定义不同,包装类是对象,基本数据类型不是

    2. 初始值不同,包装类的初始值是null,而基本数据类型则是不同类型不一样

    3. 声明和使用方式不同,包装类使用new

    4. 存储位置不同,基本数据类型使用栈存储,包装类的引用也存储在栈中,但包装类的实例存储在堆里

    【equals的使用】

    基本数据类型和包装类用equal做比较时,会将基本数据类型自动装箱,如图1

    图1

    【==的使用】

    1. 基本数据类型和包装类用==做比较时,会将包装类自动拆箱

    2. 两个包装类用==做比较时,比较的是对象的内存地址

    3. 两个基本数据类型用==做比较时,比较的是值

    【其他】

    1. 包装类的valueof() 是用new方法来构建对象的

    2.  包装类根据类型的不同有不同的缓存范围,有些没有缓存

    图2

    如图2,第一个会相等是因为Integer的缓存范围是-128-127,所以两者会相等,第二个则因为超出了缓存范围,两个对象的内存地址不一样,所以不相等。

    PS:1.  Double类型没有缓存

             2. 只有valueOf方法构造对象时会用到缓存,new方法等不会使用缓存!

    学习地址

    相关文章

      网友评论

          本文标题:java基本数据类型和包装类

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