Java面试题:int和Integer有什么区别?为什么要有包装类?
Java是一种强数据类型的语言,因此所有的属性必须有一个数据类型。就像麦德龙超市一样,想要进去购物,先要有一个会员卡才行(刷卡入内)。
PS:Java10有了局部变量类型推导,可以使用var来替代某个具体的数据类型,但在字节码阶段,Java的变量仍有着明确的数据类型,且局部变量类型推导有着很多限制和不完善之处,也不是目前主流的应用版本,所以这里不做深入讨论。
回到主题,要理解int和Integer的区别,要先从Java的基础数据类型说起。
一、基本数据类型在Java中,一共有8种基本类型(primitivetype),其中有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,包装类的存在解决了基本数据类型无法做到的事情泛型类型参数、序列化、类型转换、高频区间数据缓存等问题。
基础类型包装类型
intInteger
shortShort
byteByte
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
三、int和Integer的区别int和Integer的区别主要体现在以下几个方面:
数据类型不同:int是基础数据类型,而Integer是包装数据类型;
默认值不同:int的默认值是0,而Integer的默认值是null;
内存中存储的方式不同:int在内存中直接存储的是数据值,而Integer实际存储的是对象引用,当new一个Integer时实际上是生成一个指针指向此对象;
实例化方式不同:Integer必须实例化才可以使用,而int不需要;
变量的比较方式不同:int可以使用==来对比两个变量是否相等,而Integer一定要使用equals来比较两个变量是否相等。
四、总结Integer是int的包装类,它们的区别主要体现在5个方面:数据类型不同、默认值不同、内存中存储的方式不同、实例化方式不同以及变量的比较方式不同。包装类的存在解决了基本数据类型无法做到的事情泛型类型参数、序列化、类型转换、高频区间数据缓存等问题。
【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!
Java开发高端课程免费试学
大咖讲师+项目实战全面提升你的职场竞争力
- 海量实战教程
- 1V1答疑解惑
- 行业动态分析
- 大神学习路径图
相关推荐
更多2016-06-07
2016-06-15
2022-05-31
达内就业喜报
更多>Java开班时间
-
北京 丨 11月27日
火速抢座 -
上海 丨 11月27日
火速抢座 -
广州 丨 11月27日
火速抢座 -
兰州 丨 11月27日
火速抢座 -
杭州 丨 11月27日
火速抢座 -
南京 丨 11月27日
火速抢座 -
沈阳 丨 11月27日
火速抢座 -
大连 丨 11月27日
火速抢座 -
长春 丨 11月27日
火速抢座 -
哈尔滨 丨 11月27日
火速抢座 -
济南 丨 11月27日
火速抢座 -
青岛 丨 11月27日
火速抢座 -
烟台 丨 11月27日
火速抢座 -
西安 丨 11月27日
火速抢座 -
天津 丨 11月27日
火速抢座 -
石家庄 丨 11月27日
火速抢座 -
保定 丨 11月27日
火速抢座 -
郑州 丨 11月27日
火速抢座 -
合肥 丨 11月27日
火速抢座 -
太原 丨 11月27日
火速抢座 -
苏州 丨 11月27日
火速抢座 -
武汉 丨 11月27日
火速抢座 -
成都 丨 11月27日
火速抢座 -
重庆 丨 11月27日
火速抢座 -
厦门 丨 11月27日
火速抢座 -
福州 丨 11月27日
火速抢座 -
珠海 丨 11月27日
火速抢座 -
南宁 丨 11月27日
火速抢座 -
东莞 丨 11月27日
火速抢座 -
贵阳 丨 11月27日
火速抢座 -
昆明 丨 11月27日
火速抢座 -
洛阳 丨 11月27日
火速抢座 -
临沂 丨 11月27日
火速抢座 -
潍坊 丨 11月27日
火速抢座 -
运城 丨 11月27日
火速抢座 -
呼和浩特丨11月27日
火速抢座 -
长沙 丨 11月27日
火速抢座 -
南昌 丨 11月27日
火速抢座 -
宁波 丨 11月27日
火速抢座 -
深圳 丨 11月27日
火速抢座 -
大庆 丨 11月27日
火速抢座