一、int 和 Integer 的区别:

  1. Integer 是 int 的包装类,int 是 java 中的基本数据类型。

  2. Integer 对象必须是实例化后才能使用,而 int 变量不需要实例化。

  3. Integer 实际是对象的引用,当 new 一个 Integer 时,实际上是生成一个指针指向此对象;而 int 则是直接存储数据值。

  4. Integer 的默认值是 null,int 的默认值是 0

二、Integer 和 int 的比较

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

Integer i = new Integer(10);Integer j = new Integer(10);System.out.println(i == j);//false

2.Integer 变量和 int 变量比价时,只要变量的值时相等的,结果就为 true,因为包装类 Integer 和基本数据类型 int 比较时,java 会自动拆包装为 int(自动拆箱),再进行比较,实际上就变为两个 int 变量的比较。

Integer i = new Integer(10);int j = 10;System.out.println(i == j);//true

3.对于非 new 生成的两个 Integer 对象进行比较时,如果两个变量的值在区间 -128~127 之间,则比较结果为 true,如果两个变量的值不在此区间,则比较结果为 false

Integer i = 127;Integer j = 127;System.out.println(i == j);//trueInteger x = 128;Integer y = 128;System.out.println(x == y);//false

  这是因为 java 在编译 Integer i = 127 ,会翻译为 Integer i = Integer.valueOf(127),在 java 中定义如下

  java 对于 -128~127 之间的数会进行缓存,Integer i = 127 时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存中取,就不会再去创建新的变量,会存在内存中被重用,始终只存在一个对象,也是享元模式的一种。

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

Integer a = new Integer(200);Integer b = 200;System.out.println(a == b);//false

Integer 和 int 的区别相关推荐

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

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

  2. Java面试题15牛客 以下关于Integer与int的区别错误的是

    Java面试题15牛客 以下关于Integer与int的区别错误的是 A int是java提供的8种原始数据类型之一 B Integer是java为int提供的封装类 C int的默认值为0 D In ...

  3. Integer与int的区别

    如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i = 1; ...

  4. Integer 与 Int 的区别

    Integer 类整形 与  Int 整形 的区别 最近在翻java的源码,发现了一些平常不注意,但很容易出错的东西,最近有空的话就整理出来. Integer:是一个int的包装类,Integer变量 ...

  5. java关于Integer和int的区别以及equals()方法

    Integer和int的比较详解 https://blog.csdn.net/andyzhaojianhui/article/details/84324466 equals()方法用于判断参数的类型和 ...

  6. Java基础 - Integer和int的区别

    一.int和Integer的区别 两者的区别主要体现在以下几个方面: 1.数据类型不同:int 是基础数据类型,而 Integer 是包装数据类型: 2.默认值不同:int 的默认值是 0,而 Int ...

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

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

  8. Integer和int的区别

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

  9. Integer 与 int 的区别

    int是java提供的8种原始数据类型之一. Java为每个原始类型提供了封装类, Integer是java为 int 提供的封装类.int 的默认值为0,而 Integer 的默认值为 null,即 ...

最新文章

  1. WPF触屏Touch事件在嵌套控件中的响应问题
  2. ERP平台的自动化测试技术实践
  3. 网页检测 AdBlock 的 6 种方法
  4. 键盘上每个键作用!!! (史上最全的)­
  5. #ifdef 的使用
  6. 单片机c语言必背100代码,单片机C语言代码手册 含100多个经典C程序.pdf
  7. Android 热修复Bugly和Sophix介绍
  8. 机器学习sklearn基础(1):多元逻辑回归分类器 (pcolormesh说明及绘图)
  9. poco库开发mysql_Poco数据库操作
  10. OSChina 周一乱弹 —— 带你装逼带你飞~
  11. 如何使用真机测试运行HarmonyOS应用
  12. 一张老照片上看故乡内江
  13. 引流效果差?一文详解轻松获取优质流量的两大要点
  14. 《起跑吧,Opa》 -- 中译本 第一章 初识Opa
  15. 阿里云服务器Windows系统试用和配置
  16. PaddlePaddle深度学习7日入门CV篇Summaries
  17. poj3182(bfs)
  18. 北大国际医院:基于互联网医疗的移动诊疗方案分析与设计
  19. Verilog的基础知识
  20. JavaCV开发详解之3:通用拉流器实现,从流媒体服务器拉流rtsp/rtmp录制成视频文件

热门文章

  1. 清理招投标不合理限制,电子招投标系统怎么遏制围串标行为?
  2. 计算机大三如何找一份“好”实习呢?
  3. 双系统安装 小记 历时9小时 过关斩将! Ubuntu19.10 + RUFUS 经验之谈
  4. devicemapper
  5. 多分类条件下分类指标:Macro-average和Micro-average,以及Weighted-average
  6. c语言实例--判定三角形的类型
  7. 仓库主动向生产线发料和生产线看板拉料转储单TR的不同(定制应用)
  8. linux定时备份到邮箱,RouteOS之每日定时备份且发送到邮箱
  9. 2003 2012 等操作系统下进行网关ARP静态绑定的设置方法
  10. 植物大战僵尸经典开发步骤