int和Integer的区别

  • int是java的一种基本数据类型,Integer是int的包装类
  • Integer变量必须实例化后才能使用,而int变量不需要
  • Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值
  • Integer的默认值是null,int的默认值是0

1、由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量永远是不相等的(因为new生成的是两个对象,其内存地址不同)。

public class IntegerTest {public static void main(String[] args) {Integer integerA = new Integer(10);Integer integerB = new Integer(10);System.out.println(integerA == integerB);  // 结果为false}
}

2、Integer变量和int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较)

public class IntegerTest {public static void main(String[] args) {Integer integerA = new Integer(10);int i = 10;System.out.println(integerA == i); // 结果为true}
}

3、非new生成的Integer变量和new Integer()生成的变量比较时,结果为false。(因为非new生成的Integer变量指向的是java常量池中的对象,而new Integer()生成的变量指向堆中新建的对象,两者在内存中的地址不同)

public class IntegerTest {public static void main(String[] args) {Integer integerA = new Integer(10);Integer integerB = 10;System.out.println(integerA == integerB); // 结果为false}
}

4、Integer对于-128到127之间的数,会进行缓存,所以在非new Integer()的情况下,-128到127之间的数都是同一个对象,相同的内存地址,用“==”进行比较时,结果为true,不在-128到127之间的数则为false。

public class IntegerTest {public static void main(String[] args) {Integer integerA = 105;Integer integerB = 105;Integer integerC = 155;Integer integerD = 155;// -128到127之间的数System.out.println(integerA == integerB); // 结果为true// 非-128到127之间的数System.out.println(integerC == integerD); // 结果为false}
}

关于Integer和int相关推荐

  1. Integer vs int

    http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html 如果面试官问Integer与int的区别:估计大多数人只会说道 ...

  2. integer比较_傻傻分不清?Integer、new Integer() 和 int 的面试题

    基本概念的区分 1.Integer 是 int 的包装类,int 则是 java 的一种基本数据类型 2.Integer 变量必须实例化后才能使用,而int变量不需要 3.Integer 实际是对象的 ...

  3. java integer int 比较_java Integer和int之间的比较问题是什么?

    展开全部 java Integer和int之间e68a84e8a2ad3231313335323631343130323136353331333365633864==的比较问题.求解释 public ...

  4. Integer 和 int 比较的特殊之处

    2019独角兽企业重金招聘Python工程师标准>>> 第一个例子:  假设我们同时定义  int a = 3;  int b = 3; 编译器先处理int a = 3: 首先它会在 ...

  5. (备忘)Java数据类型中String、Integer、int相互间的转换

    1.Integer转换成int的方法 Integer i; int k = i.intValue(); 即Integer.intValue(); 2.int转换成Integer int i; Inte ...

  6. Integer 和 int的种种比较

    public static void main(String[] args) {int i = 128;Integer i2 = 128;Integer i3 = new Integer(128);/ ...

  7. Java数据类型中String、Integer、int相互间的转换

    1.Integer转换成int的方法 Integer i;  int k = i.intValue(); 即Integer.intValue(); 2.int转换成Integer int i; Int ...

  8. String 和Integer、int之间互转

    String转Integer String str = "10"; Integer it = Integer.valueOf(str); Integer转String Intege ...

  9. integer比较_每日一题:Integer、int 的区别

    点击上方蓝色字体,选择"标星公众号"优质文章,第一时间送达来自 | chenxiangxiang链接 | cnblogs.com/cxxjohnson/p/10504840.htm ...

  10. 你知道Integer和int的区别吗

    最近小康面试,突然被面试官问道,说一下Integer和int的区别.额-可能平时就知道写一些业务代码以及看一些自己觉得比较高大上的东西,包括面试也看的一些Spring源码等,对于这种java特别基础的 ...

最新文章

  1. 这41条科研经验,让你少走很多弯路!
  2. SharePoint 2013 Disaster Recovery——迁移内容数据库
  3. openssl java aes_Java AES算法和OpenSSL配对
  4. 接口IDisposable的用法
  5. Ubuntu修改/删除主目录下的中文文件夹
  6. 复杂sql 查询编写方法_学习SQL:如何编写复杂的SELECT查询
  7. 【IT】计算机基础知识
  8. arp欺骗的软件有哪些_局域网内如何防止ARP欺骗
  9. Elsevier(爱思唯尔)论文模板下载地址及说明
  10. 【Network篇<Day02>】——华为模拟器eNSP、交换机命令、路由器命令
  11. O2O模式是什么意思 O2O运作模式有哪些?
  12. 开发者选项看html,手机怎么打开开发者选项?开发者模式开启方法
  13. 关于int型最大值最小值的思考
  14. 1688item_search新品数据获取API接口调用示例
  15. IT江湖之怎样成为IT界的西门吹雪和独孤求败
  16. Win7升级Win10系统提示错误0x80070057的解决方法
  17. 1.《天空之城》- 尤克里里指弹入门版
  18. Android 外置 SD 卡写入权限问题
  19. 基本尺寸,实际尺寸,作用尺寸,极限尺寸,最大实体尺寸,最小实体尺寸
  20. 微信二维码的生成(java后端)--邀请新人

热门文章

  1. apache php gzip压缩输出的实现方法
  2. mos管的rc吸收电路计算_RC吸收电路的设计经验分享
  3. HTTP协议的默认端口是什么?底层原理是什么?
  4. 以太坊编程-Geth
  5. 实现微信产品问题反馈群实时监控与问题自动录入(上)
  6. IO流_IO流概述及分类
  7. win10电脑安装Photoshop cs7软件版本
  8. 网站发布一般步骤以及解决方法
  9. 判断设备信息是否为移动端,移动端跳转到移动端网页(手机网站)
  10. 跨境电商:外贸企业做海外社媒营销的优势