面试官:int和Integer的区别?为什么要有包装类?

面试官:int和Integer的区别?为什么要有包装类?

Java 是一种强数据类型的语言,因此所有的属性必须有一个数据类型。就像麦德龙超市一样,想要进去购物,先要有一个会员卡才行(刷卡入内)。

PS:Java 10 有了局部变量类型推导,可以使用 var 来替代某个具体的数据类型,但在字节码阶段,Java 的变量仍有着明确的数据类型,且局部变量类型推导有着很多限制和不完善之处,也不是目前主流的应用版本,所以这里不做深入讨论。

回到主题,要理解 int 和 Integer 的区别,要先从 Java 的基础数据类型说起。

基本数据类型

在 Java 中,一共有 8 种基本类型(primitive type),其中有 4 种整型、2 种浮点类型、1 种用于表示 Unicode 编码的字符类型 char 和 1 种用于表示真假值的 boolean 类型。

  • 4 种整型:int、short、long、byte
  • 2 种浮点类型:float、double
  • 字符类型:char
  • 真假类型:boolean

基本数据类型是指不可再分的原子数据类型,内存中直接存储此类型的值,通过内存地址即可直接访问到数据,并且此内存区域只能存放这种类型的值,int 就是 Java 中一种常用的基础数据类型

包装类及其作用

因为 Java 的设计理念是一切皆是对象,在很多情况下,需要以对象的形式操作,比如 hashCode() 获取哈希值,或者 getClass() 获取类等。

包装类的作用

在 Java 中每个基本数据类型都对应了一个包装类,而 int 对应的包装类就是 Integer包装类的存在解决了基本数据类型无法做到的事情泛型类型参数、序列化、类型转换、高频区间数据缓存等问题

基础类型

包装类型

int

Integer

short

Short

byte

Byte

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

int 和 Integer 的区别

int 和 Integer的区别主要体现在以下几个方面:

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

总结

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

参考 & 鸣谢

《码出高效:Java开发手册》

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/128502.html

(0)

相关推荐

  • 孩子一岁半,我性格内向,成为亲子沟通讲师。

    最近,我成为了体育教师家长效能培训的准讲师! 与P.E.T.结缘家里有孩子的人都见过或听说过《P.E.T.父母效能训练》,自1970年出版以来一直畅销。作为一个爱看育儿书的新手妈妈...

    生活 2021年10月22日
  • 欧洲数据保护委员会呼吁逐步禁掉定向广告

    欧洲数据保护委员会(EDPB)是一个专家指导机构,负责向欧盟立法者建议如何解释保护公民个人数据的规则。日前,它向集团的立法者发出警告:一揽子即将出台的数字法规有可能损害人们的基本权利--如果没有“决定性行动”来修正这套提案的话。

    科技 2021年11月20日
  • 如何使用国产卫星电话S836

    视频加载中...

    科技 2021年12月9日
  • 天猫奢品蓁芯:3亿奢品消费者,都在买什么?

    吴羚玮|整理 双11前,天猫超市和进出口事业群升级为阿里巴巴B2C零售事业群。其中天猫奢品业务由天猫奢品Luxury Pavilion和魅力惠MEI双频道组成。前者是吸引奢侈品牌官...

    科技 2021年11月14日
  • 为什么说“女不过七七,男不过八八”,这些变化说明了厥阴主令

    人的一生有两个周期,一个是生命周期,即生长壮老已,从出生到死亡的全过程。另一个是生殖周期,这个周期男女有差异,女子从二七(14岁)月经初潮到七七(49岁)绝经,男子从二八(16岁)肾气盛到八八(64岁)齿发去。

    生活 2021年10月8日
  • 野村:中国云市场将长期保持增长。

    野村中国科技及电讯行业分析师段冰表示,鉴于在创新应用(VR/AR、物联网、智能汽车等)、技术进步(5G、AI等)及良好监管环境的推动下,中国的云市场将继续保持长期增长。IaaS(基础设施即服务)在中国的云市场中扮演着至关重要的角色,亦是最大的细分市场。段冰提示,具有更高的准入门槛、更高附加值的解决方案和客户忠诚度的PaaS(平台即服务)和SaaS(软件即服务)市场,未来具有更好的增长前景。(上证报)

    科技 2021年10月25日