• Integer int auto-boxing auto-unboxing ==


     Auto-boxing 自动装箱

    Auto-unboxing 自动拆箱

    == 相等

     1、new出来的对象,除非遇到了拆箱的情况,肯定不相等。

    因为new对象之前需要在JVM堆中提供空间,所以new出来的东西之间,至少内存地址是不一样的

    2、基本数据类型之间只比较值

    基本数据类型的值,是常量,位于方法区的常量池(1.7之后位于堆),基本数据类型变量都是指向这些值的。

    3、一个引用的类型只要是基本数据类型,就不再管赋给引用的东西是什么了,一律只比较值

    包装类对象赋值给基本数据类型时都会自动拆箱

    4、不一定赋值的时候,包装类对象跟基本数据类型比较的时候也会拆箱

    5、自动装箱,会产生一个包装类的对象,赋给引用。这里有两种情况

    第一种情况是装箱前的值 在Java设计的缓存的范围内,那么装箱后的对象是已有的缓存对象

    第二种情况是装箱前的值 在Java设计的缓存的范围外,那么装箱后的对象是new出来的对象

    而Integer装箱机制的缓存范围,在源码中是有详细实现的。

  • 相关阅读:
    4.23计算机网络
    CF436F Banners
    CF1467C Three Bags
    LG P3247 [HNOI2016]最小公倍数
    LG P5473 [NOI2019] I 君的探险
    LG P3261 [JLOI2015]城池攻占
    LG P4149 [IOI2011]Race
    LG P3181 [HAOI2016]找相同字符
    SP7258 SUBLEX
    SP1811 LCS
  • 原文地址:https://www.cnblogs.com/deolin/p/7228276.html
Copyright © 2020-2023  润新知