0


Java 中 int 和 Integer 的区别,为什么要有包装类?

int 和 Integer 的区别

前言

Java 是一门强类型语言,所以在 Java 中,所有的数据都必须有自己的数据类型,这就像 “山姆商店” 的会员制一样,你是会员才能进入,在 Java 中也是如此,每一个数据必须有自己的数据类型。

回归正题

int 和 Integer 的区别是一个非常基础的问题,但是在面试的过程中却会经常遇到,下面就来梳理一下 int 和 Integer 的区别,以及使用包装类的好处。


基本数据类型

在 Java 中,一共有 8 中基本数据类型,而基本数据类型,指的是具有原子性的不可再被拆分的数据类型

  • boolean
  • byte
  • char
  • short
  • int
  • long
  • float
  • double

其中 boolean 类型表示判断真假,char 类型表示的是 Unicode 编码中的字符类型,整型类型:byte(1字节),short(2字节),int(4字节),long(8字节),表示浮点数类型:float(4字节),double(8字节)。

基本数据类型的值都是直接被存放在内存中的,通过内存地址可以直接拿到,并且该内存空间也只能存放当前数据类型的数据,而 int 就是其中一种数据类型。


包装类

在 Java 里,每一种基本数据类型都对应着一个包装类。

  1. 基础类型 包装类型
  2. boolean Boolean
  3. byte Byte
  4. char Character
  5. short Short
  6. int Integer
  7. long Long
  8. float Float
  9. double Double

因为在 Java 中,秉持着一切皆 “对象” 的理念,我们经常需要进行对对象的操作,比如 hashCode() 获取哈希值,getClass()获取类等等,而诸如此类的操作我们就可以通过包装类完成,因为包装类就是一个对象。

包装类的作用:

在 Java 中每个基本数据类型都封装了其对应的包装类,而 int 类型对应的包装类就是 Integer,包装类的存在完成了基本数据类型无法完成的事,比如说作为泛型类型参数,序列化,类型转化,高频区间数据缓存等等。

下面来总结一下 int 和 Integer 之间的区别

int 和 Integer 的区别

int 和 Integer 的区别主要体现在以下几点:

  1. 数据类型不同:int 是基本数据类型,而 Integer 是包装类数据类型。
  2. 默认值不同:int 类型的默认值是 0,而 Integer 类型的默认值是 null。
  3. 内存中存储方式不同:int 类型存储是在内存中直接存储值,而 Integer 类型在内存中存储的其实是对象引用,Integer 在实例化阶段生成了一个引用指向了 Integer 对象。
  4. 实例化方式不同:int 不需要实例化可以直接定义,而 Integer 需要使用 new 关键字进行实例化。
  5. 变量的比较方式不同:int 可以用 “==” 进行值的比较,而 Integer 需要使用 “equals” 进行比较。

总结

总结一下,int 和 Integer 的区别有 5 点:数据类型不同,默认值不同,内存存储方式不同,实例化不同,变量比较不同。

而 Integer 作为包装类,可以做到 int 做不到的事,比如作为泛型类型的参数,序列化,类型转换,高频区间数据缓存等。

最后,希望本文对大家有帮助,祝大家秋招顺利!

标签: java jvm 面试

本文转载自: https://blog.csdn.net/Aaron_skr/article/details/126654365
版权归原作者 万羽西 所有, 如有侵权,请联系我们删除。

“Java 中 int 和 Integer 的区别,为什么要有包装类?”的评论:

还没有评论