一、int和Integer的区别

两者的区别主要体现在以下几个方面:
1、数据类型不同:int 是基础数据类型,而 Integer 是包装数据类型;
2、默认值不同:int 的默认值是 0,而 Integer 的默认值是 null;
3、内存中存储的方式不同:int 在内存中直接存储的是数据值,而 Integer 实际存储的是对象引用,当 new 一个 Integer 时实际上是生成一个指针指向此对象;
4、实例化方式不同:Integer 必须实例化才可以使用,而 int 不需要;
5、变量的比较方式不同:int 可以使用 == 来对比两个变量是否相等,而 Integer 一定要使用 equals 来比较两个变量是否相等。

二、 Integer、new Integer()和int的比较

1、两个new Integer()变量比较,永远是false

因为new生成的是两个对象,其内存地址不同

2、Integer变量 和 new Integer() 变量比较 ,永远为 false

因为 Integer变量 指向的是java常量池中的对象,而 new Integer() 的变量指向堆中新建的对象,两者在内存中的地址不同。

3、两个Integer 变量比较,如果两个变量的值在区间-128到127 之间,则比较结果为true,如果两个变量的值不在此区间,则比较结果为 false。


分析:

Integer i = 100 在编译时,会翻译成为 Integer i = Integer.valueOf(100),而 java 对 Integer类型的 valueOf 的定义如下


java对于-128到127之间的数,会进行缓存。
所以 Integer i = 127 时,会将127进行缓存,下次再写Integer j = 127时,就会直接从缓存中取,就不会new了。

4、int变量与 Integer、new Integer()比较时,只要两个的值是相等的,则为true.

因为包装类Integer 和 基本数据类型int 比较时,java会自动拆包装为int ,然后进行比较,实际上就变为两个int变量的比较。

三、总结

Integer 是 int 的包装类,它们的区别主要体现在 5 个方面:数据类型不同、默认值不同、内存中存储的方式不同、实例化方式不同以及变量的比较方式不同。包装类的存在解决了基本数据类型无法做到的事情泛型类型参数、序列化、类型
转换、高频区间数据缓存等问题。

Java基础 - Integer和int的区别相关推荐

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

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

  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的区别.额-可能平时就知道写一些业务代码以及看一些自己觉得比较高大上的东西,包括面试也看的一些Spring源码等,对于这种java特别基础的 ...

  4. Java基础之equals和==的区别深入解析

    Java基础之equals和==的区别深入解析 以下是本文目录大纲 equals 和 == 的区别 equals 的重写 复写hashCode方法,有31这个数字的作用 1. equals 和 == ...

  5. Integer与int的区别

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

  6. Java基础-Integer的==和equals方法

    Java基础-Integer的==和equals方法 1.首先说下 equals 方法: ​ equals 方法接受的参数为 Object 类型 equals(Object obj),首先会判断参数中 ...

  7. Integer 和 int 的区别

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

  8. Integer 与 Int 的区别

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

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

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

最新文章

  1. 【GZAdmin】开源BS demo快速搭建
  2. Apache Hook机制解析(上)——钩子机制的实现
  3. 启明云端分享| RK3568核心板到底有哪些吸引眼球的地方呢
  4. iphone/ipod网页开发教程及规则
  5. 诗和远方:无题(四十五)
  6. DCS::TabNotebook
  7. Hudson Jameson将在柏林硬分叉后卸任以太坊基金会社区经理
  8. 在html显示数据库的信息,从数据库中提取信息并将其显示在HTML div
  9. 怎样更改itunes备份位置_iphone备份太大,严重挤占C盘空间,怎么把备份放在其他的硬盘?...
  10. HDU1201 18岁生日【日期计算+水题】
  11. unity3d 挂载脚本_Unity3D加载资源的四种方式
  12. 如何使用U盘替换光驱引导部署WES7系统
  13. 浅谈Android自定义View
  14. 创变数智化,新华三揭开企业上云密码
  15. 两点定标法_基于积分时间调整的红外焦平面阵列非均匀校正算法研究
  16. 互换性测量技术-几何误差
  17. 小米mini版青春版智能无线路由器相关记录
  18. CSGO开启跑图设置一看就会
  19. Unexpected state导致HMaster abort
  20. windows系统纯净的专业版镜像

热门文章

  1. 【观察】后疫情时代,数据中心效率与成本的“平衡术”
  2. 学生信息管理系统模块问题篇
  3. 计算机主板pci插槽,PCI插槽:濒临淘汰依然有用
  4. 《算法导论》第四章-第4节_练习(参考答案)
  5. 中职计算机教师招聘试题,中职教师招聘考试内容_考试题库
  6. 国外LEAD域名申请
  7. Java mongoDB查询(Query Criteria)
  8. MS17-010漏洞检测与内网穿透技术的应用
  9. Android智能聊天机器人的实现
  10. ElasticSearch入门-搜索(java api)