美国上市公司,专注Java培训21年

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答疑解惑
  • 行业动态分析
  • 大神学习路径图

相关推荐

更多
  • Java面试题目:Java关键词汇总
    Java面试题目:Java关键词汇总
    在开发类的论坛和社交网站,时常有同学分享Java面试的答题思路和“凉经”…… 详情>>

    2022-12-05

  • 常见10大Java main面试问题
    常见10大Java main面试问题
    Java程序员在面试的时候,在Java main方面都会被问到哪些问题呢?达内java培训(java.tedu.cn)为大家准备一些 常见的Java main的基础知识问题,帮助大家在面试前做好准备 详情>>

    2016-06-07

  • 大数据技术简单面试题推荐
    大数据技术简单面试题推荐
    大数据的趋势已逐步从概念走向落地,而在IT人跟随大数据浪潮的转型中,各大企业对大数据高端人才的需求也越来越紧迫。这一趋势,也给想要从事大数据方面工作的人员提供了难得的职业机遇。 详情>>

    2016-06-15

  • Java工程师常见面试题目汇总
    Java工程师常见面试题目汇总
    Java工程师常见面试题目汇总!我们想要成为Java工程师首先会经过各种面试,面试就离不开面试题目,今天小编和大家分享一下Java工程师面试题目! 详情>>

    2022-05-31

  • Java开班时间

    收起