美文网首页
int、Integer 、new Integer区别

int、Integer 、new Integer区别

作者: 雨景江水 | 来源:发表于2022-03-30 09:35 被阅读0次

    注1:
    int a = 11;
    if (a != null) {
    System.out.println(11111);
    }
    这种编译就报错,基本类型不能和null比较

    注2:
    包装类Integer和基础类型int 相等的比较,在排除null干扰后,建议直接使用==,因为Integer会自己拆箱

    注3:两个Integer类型,在排除null后,应该使用equals方法比较是否相等,用==是会出错的

    一.int Integer new Integer区别

    详解:https://cloud.tencent.com/developer/article/1493262

    Integer a = new Integer(900); // 栈里面有一个变量a,a里面保存了一个地址,该地址指向堆,堆里面有一块地址保存了900.

    二. 方法区中整数型常量池 : 范围是在 [-128,127] 之间

    详解:https://blog.csdn.net/weixin_41362471/article/details/109277451

    三. 把int基本类型转成包装类,不要用new Integer已被放弃了 ,要用Integer.valueof()方法
    详解:https://ask.csdn.net/questions/1103306

    四. Integer.valueOf()源码 和 Integer 的equals 方法源码

    Integer a = 100;
    变量a里面保存的是地址值,是缓存100的地址值

    1. Integer.valueOf()源码
      int a = 11;
      Integer integer = Integer.valueOf(a);

    public static Integer valueOf(int i) {
    if (i >= IntegerCache.low && i <= IntegerCache.high)
    return IntegerCache.cache[i + (-IntegerCache.low)]; // 注意,这个地方是返回地址值得,IntegerCache.cache就是个数组,保存的都是地址值
    return new Integer(i);
    }

    2.equa源码ls
    Integer a = 11;
    Integer b = 22;
    a.equals(b);

    public boolean equals(Object obj) {
    if (obj instanceof Integer) {
    return value == ((Integer)obj).intValue();
    }
    return false;
    }

    五. 数值类型自动装箱 和 自动拆箱的源码

    Integer i =100; //自动装箱 Integer i = Integer.valueOf(100);

    int t = i; //自动拆箱 int t = i.intValue();

    https://blog.csdn.net/qq_32379477/article/details/111664536?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link

    https://blog.csdn.net/qq_40981730/article/details/81949793

    https://blog.csdn.net/qq_35324400/article/details/103620865

    自动拆箱:调用Integer的intValue()方法获取到了Integer的int类型的value值

    六.Integer对象,不能随便使用==来比较

    https://blog.csdn.net/weixin_33750452/article/details/91831383

    相关文章

      网友评论

          本文标题:int、Integer 、new Integer区别

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