美文网首页
java的int与Integer区别

java的int与Integer区别

作者: 瓢鳍小虾虎 | 来源:发表于2021-07-30 11:14 被阅读0次

    一句话:int是基本数据类型,Integer是类。

    详细:

    1. 由于是对象,Integer默认值是null,而int是0;Integer需要实例化才能使用,int可以直接使用。
    2. Integer是int的包装类。再integer与int类型直接比较的时候系统会自动做些动作方便使用(比如自动对Integer解析成int再比较)。

    一些案例帮助理解:

    Integer i = new Integer(100);
    Integer j = new Integer(100);
    System.out.print(i == j); //false,引用类型比较

    Integer i = new Integer(100);
    int j = 100;
    System.out.print(i == j); //true,Integer会自动解析成int再比较

    Integer i = new Integer(100);
    Integer j = 100;
    System.out.print(i == j); //false,前者指向堆内存中的对象,后者指向java常量池中的对象

    Integer i = 128; // 相当于Integer i = Integer.valueOf(128),-128到127会被缓存,超过范围则会new
    Integer j = 128;
    System.out.print(i == j); //false

    Integer i = 100;
    Integer j = 100;
    System.out.print(i == j); //true,因为被缓存,实际上对应常量池中同一个对象

    参考文章:
    int与Integer区别

    相关文章

      网友评论

          本文标题:java的int与Integer区别

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