栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Int 和 Integer 的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Int 和 Integer 的区别

区别:

  1. Integer 是 Int 的包装类,Int 则是Java的一种基本的数据类型。
  2. Integer 变量必须实例化之后才能使用,而 Int 变量不需要实例化 。
  3. Integer 实际是对象的引用,当new一个 Integer时,实际上生成一个指针指向对象,而 Int 则直接存储数值 。
  4. Integer 的默认值是 null,而 Int 的默认值是0 。

Java基本数据类型与引用数据类型的区别:

  • Java基本数据类型保存的是原始值
  • 引用数据类型保存的是引用值

比较:

  1. 由于 Integer 实际是对一个 Integer 对象的引用,所以两个通过 new 生成的 Integer 变量永远是不相同的;因为new 生成的是两个不同的对象,其内存地址不同。下面运行的结果为false
    Integer i = new Integer(100);
    Integer j = new Integer(100);
    System.out.println(i == j);   //false

  2. Integer 变量 和 Int 变量 进行比较时,只要两个变量的值相等,则结果为True。因为包装类Integer和基本数据类型比较的时候,Java会自动拆箱为 Int,然后进行比较,实际上就是两个Int变量进行比较。
    Int     i = new Integer(100);
    Integer j = new Integer(100);
    System.out.println(i == j);   //true
  3. 非New 生成的Integer 变量和new Integer生成的变量比较的时候,结果为 false。因为非New生成的Integer变量指的是Java常量池中的对象,而new出来的对象指向的是堆中创建出来的对象,两者内存地址不同。
    Integer i = 100;             //指的是Java常量池中的对象
    Integer j = new Integer(100); //指的是堆中新创建出来的对象   
    System.out.println(i == j);   //false

  4. 两个非New出来的对象,进行比较的时候,如果两个变量的值区间在 -127~128之间的时候,则返回是true;如果两个变量的变量值不在这个区间,则比较的结果是false。
    Integer i = 100;
    Integer j = 100;
    System.out.println(i == j);  //true
    
    
    
    Integer i = 128;
    Integer j = 128;
    System.out.println(i == j);  //false

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/444884.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号