int 和 Integer

以最简单的代码来看

int a = 100, b =100;
System.out.println(a == b);       //true
Integer c = 100, d =100;
System.out.println(c == d);       //true
int e = 1000, f =1000;
System.out.println(e == f);       //true
Integer g = 1000, h =1000;
System.out.println(g == h);       //false

为什么会有上述结果?

首先,int是基本数据来类型之一,而Integer是int的包装类。

一个小知识点,“==” 它是用来比较是否相等的:

  • 如果“==”两边是基本数据类型,则会直接比较值;那int类型的100自然是等于100的,1000和1000自然也是相等的。
  • 如果“==”两边是对象类型,则会比较两个对象的地址,不同的对象一般情况下地址当然是不同的,g和h就是两个不同的Integer对象,地址自然不同,也就不成立。

那为什么c和d会相等呢?

这涉及到java中一个自动装箱的概念,将基本数据类型转为包装类型叫做装箱,反过来叫拆箱。在对包装类进行一些算数运算时,会执行自动装箱和拆箱,而这个自动的范围是有限制的,对于int来讲,范围是 -128~127之间,于是Integer对象的值为100的时候可以执行自动拆箱,结果自然是100等于100,而值为1000时,超出了范围,不再比较值而是比较地址,于是结果是false。

int 和 Integer相关推荐

  1. int和Integer的区别在哪里

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

  2. java原生类型没有封装_Java基本数据类型与封装类型详解(int和Integer区别)

    Java基本数据类型与封装类型详解(int和Integer区别) 发布于 2020-4-19| 复制链接 摘记: int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Int ...

  3. java中的int、Integer 和 new Integer()的区分和比较

    java中的int.Integer 和 new Integer()的区分和比较 一.问题提出: 1.1.问题一: int a = 2; Integer b = 2; Integer c = new I ...

  4. java int interger_java面试题之int和Integer的区别

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

  5. java int == integer_java int与integer的区别

    int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型 ...

  6. 基础回顾(正则、循环、和、 int和Integer、String /StringBuffer、Array和ArrayList、值传递和引用传递、 Lamda、java8)

    1. 正则表达式 1.1 Java中是如何支持正则表达式操作的? Java中的String类提供了支持正则表达式操作的方法,包括:matches().replaceAll().replaceFirst ...

  7. 二十八、Java中的Int和Integer的区别

    @Author:Runsen @Date:2020/6/3 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  8. 最明的int和Integer的区别

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

  9. java int与integer的区别

    int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象 1.Java 中的数据类型分为基本数据类型 ...

  10. java 封装表单数据类型_Java基本数据类型与封装类型详解(int和Integer区别)

    int是java提供的8种原始数据类型之一. Java为每个原始类型提供了封装类,Integer是java为int提供的封装类(即Integer是一个java对象,而int只是一个基本数据类型).in ...

最新文章

  1. 英特尔发布oneAPI软件计划及beta产品,面向异构计算提供统一可扩展的编程模型
  2. 【CV项目实战】纯新手如何从零开始完成一个工业级图像分割任务的整个流程?...
  3. OBJECT_ID 与objectproperty
  4. 初识ES-es与mysql的概念对比
  5. docker搭建webug4.0并——示范.支付漏洞,邮箱轰炸
  6. vim 编辑器的快捷键
  7. Anaconda 安装
  8. 获取windows所有端口
  9. CUDA中的复数定义、开内存空间以及运算
  10. JavaScript-浅谈DOM事件流
  11. java实验总结_java第一次实验总结第三周总结
  12. 安装配置Greenplum
  13. AndroidP 开机自启动程序
  14. 计算机 考 二级结构工程师,下半年河北省结构工程师二级专业结构:计算机软件的组成及功能考试试题.doc...
  15. MPSK 通信系统的 Monte Carlo 仿真
  16. kubernetes(centos7)域名解析失败
  17. 【Flutter】Dart 数据类型 数字类型 ( Dart 文件创建 | num 类型 | int 类型 | double 类型 | num 相关 API )
  18. AlexNet网络的搭建
  19. Authentication failed for git
  20. [嵌入式开发模块]JY61姿态角度传感器 驱动模块

热门文章

  1. python钉钉机器人发送excel附件_python 钉钉机器人发送消息
  2. .NET主流的ORM框架
  3. 【C语言】—— qsort()函数的使用
  4. Python 83道经典练习题,含答案!
  5. 【5. Redis的高并发高可用】
  6. 分类模型-评估指标(2):ROC曲线、 AUC值(ROC曲线下的面积)【只能用于二分类模型的评价】【不受类别数量不平衡的影响;不受阈值取值的影响】【AUC的计算方式:统计所有正负样本对中的正序对】
  7. example如何使用?
  8. 如何在kubernetes中使用共享GPU资源
  9. Bootstarp:网站导航栏的编写设计
  10. SQL外部联合:right outer join、left outer join、full outer join